2
ゲッターとセッターを避け、ユーザー情報を表示する
バックグラウンド 私は「クリーンコードブック」を読んでいます。並行して、私は銀行口座などの体操のカタに取り組んでおり、そのルールに固執しています: 体操の9番目のルールは、ゲッターやセッターを使用しないことです。 とても楽しいようで、私はこの原則に同意します。さらに、作者はClean Codeの98〜99ページで、ゲッター/セッターが抽象化を壊し、オブジェクトに問い合わせる必要はないが、オブジェクトに通知する必要があると説明しています。 これは私の心の中で完全に理にかなっており、私はこの原則に完全に同意します。問題は実際に起こります。 環境 たとえば、一部のユーザーをリストし、ユーザーの詳細を表示する必要があるアプリケーションがあります。 私のユーザーは以下で構成されています: -> Name --> Firstname --> String --> Lastname --> String -> PostalAddress --> Street --> String --> PostalCode --> String 問題 どのように私は行うことができ、または私は私だけ(簡単な情報を表示する必要があるときゲッターを避けるために何ができると私はその特定のフィールドに余分な操作を必要としないことを確認する必要があり(単純でのFirstName値を表示します)ランダム)出力サポート? 頭に浮かぶのは 1つの解決策は、 user.getName().getFirstName().getStringValue() これは完全に恐ろしいことであり、体操の多くのルールを破り、デメテルの法則を破ります。 別のものは次のようなものです: String firstName = user.provideFirstnameForOutput(); // That would have called in the user object => …