在设计OO语言时,我应该避免只写属性吗?

时间:2011-10-24 12:34:18

标签: oop properties language-design writeonly

我正在设计面向对象的编程语言以达到学习的目的。该语言具有以下属性:

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

我是否应该为只写属性添加选项,或者这只会导致使用此语言的程序中的错误设计决策?

3 个答案:

答案 0 :(得分:3)

通过各种方式设计只写属性 - 只要知道它们的用途有限(如果你只是要写它并且从不公开它,为什么要有属性?)。

不妨使用简单的方法代替。这将减少使用您的代码的人的混淆。


Java和.NET确实只有写入属性,因此有先例。

答案 1 :(得分:2)

Write-Only属性对我没有意义。用于信息目的的只读属性非常有用,但是“我给你一个信息,但我永远无法找到你所知道的信息”的具体场景是什么?

答案 2 :(得分:1)

其他OO语言允许这样做。例如,在Java中,您可以创建一个私有变量并添加一个方法,允许您更改变量,但不能读取它。你的方法更像微软,明确创建“属性”,但我不明白为什么这会是一个问题。如果您设计一种OO语言来防止所有糟糕的设计决策,那么除了打印“DENIED”然后关闭之外,您的语言将不会执行任何操作。

相关问题