Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Замечание
Это содержимое перепечатывается разрешением Pearson Education, Inc. из руководства по проектированию платформы: соглашения, идиомы и шаблоны для повторно используемых библиотек .NET, 2-го выпуска. Этот выпуск был опубликован в 2008 году, и книга с тех пор была полностью пересмотрена в третьем выпуске. Некоторые сведения на этой странице могут быть устаревшими.
Принцип инкапсуляции является одним из наиболее важных понятий в объектно-ориентированном дизайне. Этот принцип указывает, что данные, хранящиеся внутри объекта, должны быть доступны только этому объекту.
Полезный способ интерпретировать принцип заключается в том, что тип должен быть разработан таким образом, чтобы изменения полей этого типа (изменения имени или типа) могли быть сделаны без нарушения кода, отличного от членов типа. Эта интерпретация сразу означает, что все поля должны быть закрытыми.
Мы исключим из этого строгого ограничения постоянные и статические поля только для чтения, так как такие поля, почти по определению, никогда не требуются для изменения.
❌ НЕ предоставляйте экземплярные поля, которые являются общедоступными или защищенными.
Вы должны предоставить свойства для доступа к полям вместо того, чтобы сделать их общедоступными или защищенными.
✔️ Используйте поля констант для констант, которые никогда не изменятся.
Компилятор встраивает значения константных полей непосредственно в вызывающий код. Поэтому константные значения никогда не могут быть изменены без риска нарушения совместимости.
✔️ Используйте общедоступные статические readonly поля для предопределенных экземпляров объектов.
Если есть предопределенные экземпляры типа, объявите их как общедоступные статические поля только для чтения самого типа.
❌ НЕ назначайте экземпляры изменяемых типов полям readonly.
Изменяемый тип — это тип с экземплярами, которые можно изменить после их создания. Например, массивы, большинство коллекций и потоков являются изменяемыми типами, но System.Int32System.Uriи System.String являются неизменяемыми. Модификатор только для чтения в поле ссылочного типа запрещает заменять экземпляр, хранящийся в поле, но не предотвращает изменение данных экземпляра поля путем вызова элементов, изменяющих экземпляр.
© Часть 2005, 2009 Корпорация Майкрософт. Все права защищены.
Перепечатан с разрешения Pearson Education, Inc. из Руководство по проектированию: Соглашения, идиомы и шаблоны для повторного использования библиотек .NET, 2-е издание Кшиштоф Чвалина и Брэд Абрамс, опубликованное 22 октября 2008 года Addison-Wesley Профессиональный в рамках серии разработки Microsoft Windows.