Должен ли я избегать свойств только для записи при разработке языка OO? - PullRequest
0 голосов
/ 24 октября 2011

Я разрабатываю объектно-ориентированный язык программирования для целей обучения.У языка есть свойства, такие как:

Class Fruit:
  Property ReadWrite Float weight
  Property WriteOnly Integer someWriteOnlyProperty # <-- avoid?

Должен ли я добавить опцию для свойств только для записи, или это приведет только к плохим проектным решениям в программах, использующих этот язык?

Ответы [ 3 ]

3 голосов
/ 24 октября 2011

Конечно, проектируйте свойства только для записи - просто имейте в виду, что они имеют ограниченное использование (если вы только собираетесь писать в него и никогда не открывать его, зачем иметь свойство?).

Может бытьхорошо, вместо этого используйте простой метод.Это уменьшит путаницу тех, кто использует ваш код.


Java и .NET имеют свойства только для записи, поэтому существуют прецеденты.

2 голосов
/ 24 октября 2011

Свойство только для записи не имеет смысла для меня. Свойства только для чтения для информационных целей очень полезны, но каков конкретный сценарий для «Я даю вам информацию, но я никогда не смогу узнать то, что вы знаете»?

1 голос
/ 24 октября 2011

Другие языки OO позволяют это.Например, в Java вы можете создать личную переменную и добавить метод, который позволяет вам изменять переменную, но не читать ее.Ваш подход больше похож на Microsoft, явно создавая «свойства», но я не понимаю, почему это будет проблемой.Если вы разрабатываете ОО-язык для предотвращения всех неудачных проектных решений, ваш язык ничего не сделает, кроме как вывести «ОТКАЗ» и затем завершить работу.

...