我正在设计面向对象的编程语言以达到学习的目的。该语言具有以下属性:
Class Fruit:
Property ReadWrite Float weight
Property WriteOnly Integer someWriteOnlyProperty # <-- avoid?
我是否应该为只写属性添加选项,或者这只会导致使用此语言的程序中的错误设计决策?
答案 0 :(得分:3)
通过各种方式设计只写属性 - 只要知道它们的用途有限(如果你只是要写它并且从不公开它,为什么要有属性?)。
不妨使用简单的方法代替。这将减少使用您的代码的人的混淆。
Java和.NET确实只有写入属性,因此有先例。
答案 1 :(得分:2)
Write-Only属性对我没有意义。用于信息目的的只读属性非常有用,但是“我给你一个信息,但我永远无法找到你所知道的信息”的具体场景是什么?
答案 2 :(得分:1)
其他OO语言允许这样做。例如,在Java中,您可以创建一个私有变量并添加一个方法,允许您更改变量,但不能读取它。你的方法更像微软,明确创建“属性”,但我不明白为什么这会是一个问题。如果您设计一种OO语言来防止所有糟糕的设计决策,那么除了打印“DENIED”然后关闭之外,您的语言将不会执行任何操作。