私は現在、新しい仕事のために vb.net を学んでおり、パブリック フィールドについて複雑な感情を抱いています。それらがカプセル化を傷つけているという多くの議論を目にします。Python では、物事をシンプルに保ち、十分な場合はフィールドを使用するのが一般的な方法です。後でロジックを追加したい場合は、クライアント コードを壊すことなくプロパティにリファクタリングするだけです。
私が使用しているコードベースには、次のような多数のプロパティを含む巨大なクラスがあります。
Private __GetDescriptionMode As Boolean
<DefaultValue(False)> _
Public Property GetDescriptionMode() As Boolean
Get
GetDescriptionMode = __GetDescriptionMode
End Get
Set(ByVal Value As Boolean)
__GetDescriptionMode = Value
End Set
End Property
これは、内部にほとんど価値のない 10 行のコードです。ビジュアル スタジオのウィンドウでは、そのうちの 3 つをほとんど見ることができません。だから私は2つの質問があります:
- 単純にフィールドを定義して、必要に応じてそれらをプロパティにリファクタリングしない正当な理由はありますか?
- OOP の原則は、読みやすさを犠牲にするほど重要ですか? (私はより少ないものを見ることができます、私はそれらが特別なことをしていないことを確認するためにプロパティを解析しなければなりません、など)
編集 私の最初の質問を明確にするために:フィールドを単純なプロパティに変更すると、クライアントコードを壊す可能性がありますか?