Шаблон дизайна данных частного класса глуп? - PullRequest
3 голосов
/ 04 сентября 2011

Я читаю эту страницу

Я не совсем понимаю, что не так с первым примером. Почему он не может просто добавить readonly к объявлению приватных полей?

Ответы [ 2 ]

8 голосов
/ 04 сентября 2011

Ключевое слово readonly (или его эквивалент) предоставляется в некоторых языках (например, C # и VB.NET ), но не в других.

C ++ является примеромобъектно-ориентированный язык, который не имеет ключевого слова, определяющего «Это можно установить в любой части функции конструктора, но нигде больше».

Объектно-ориентированные шаблоны проектирования должны быть нейтральными по отношению к языку: применяются ко всем объектно-ориентированным языкам.Из этого следует, что некоторые языки могут иметь дополнительные функции, которые делают конкретный шаблон устаревшим.

В этом случае представление шаблона выглядит слишком глупым, поскольку шаблон введен, а затем приведен пример в C # , который не нуждается в этом.

0 голосов
/ 04 сентября 2011

Он очень хорошо мог бы использовать readonly.Похоже, он не понимает, что делает readonly. От MSDN :

Ключевое слово только для чтения - это модификатор, который можно использовать в полях.Если объявление поля содержит модификатор «только для чтения», присваивания полям, введенным объявлением, могут выполняться только как часть объявления или в конструкторе того же класса.

Вы можете установить readonly поля в конструкторе.Фактически, вам придется - как еще эти поля будут иметь какое-либо значимое значение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...