0

我正在设计一种面向对象的编程语言以用于学习。该语言具有如下属性:

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

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

4

3 回答 3

3

一定要设计只写属性——只要注意它们的用途有限(如果你只写它而不公开它,为什么要有一个属性?)。

还不如用一个简单的方法来代替。这将减少那些使用您的代码的人的任何混淆。


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

于 2011-10-24T12:38:09.953 回答
2

只写属性对我来说没有意义。用于信息目的的只读属性非常有用,但是“我给你一个信息,但我永远无法找出你所知道的”的具体情况是什么?

于 2011-10-24T12:37:04.043 回答
1

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

于 2011-10-24T12:38:11.987 回答