学習目的でオブジェクト指向プログラミング言語を設計しています。言語には、次のようなプロパティがあります。
Class Fruit:
Property ReadWrite Float weight
Property WriteOnly Integer someWriteOnlyProperty # <-- avoid?
書き込み専用プロパティのオプションを追加する必要がありますか?それとも、この言語を使用するプログラムで不適切な設計上の決定につながるだけですか?
学習目的でオブジェクト指向プログラミング言語を設計しています。言語には、次のようなプロパティがあります。
Class Fruit:
Property ReadWrite Float weight
Property WriteOnly Integer someWriteOnlyProperty # <-- avoid?
書き込み専用プロパティのオプションを追加する必要がありますか?それとも、この言語を使用するプログラムで不適切な設計上の決定につながるだけですか?
必ず、書き込み専用プロパティを設計してください。使用が制限されていることに注意してください (書き込みのみを行い、決して公開しない場合、プロパティを使用する必要はありません)。
代わりに簡単な方法を使用することもできます。これにより、コードを使用する人の混乱が軽減されます。
Java と .NET には書き込み専用のプロパティがあるため、先例があります。
書き込み専用プロパティは私には意味がありません。情報提供のための読み取り専用プロパティは非常に役立ちますが、「情報を提供するが、あなたが知っていることを知ることは決してできない」という具体的なシナリオは何ですか?
他の OO 言語ではこれが可能です。たとえば、Java では、プライベート変数を作成し、変数を変更できるが読み取りはできないメソッドを追加できます。あなたのアプローチはマイクロソフトの方針に沿っており、明示的に「プロパティ」を作成していますが、なぜこれが問題になるのかわかりません。すべての悪い設計上の決定を防ぐように OO 言語を設計する場合、その言語は "DENIED" を出力してからシャットダウンする以外は何もしません。