私は最近 Java で働き始め、すべてのゲッターとセッターのワイルドでクレイジーな世界を紹介されました。最初は嫌でしたが、すぐに慣れました。慣れすぎ。
私は最近、クラスの設計について考えることに多くの時間を費やしています。私がやろうとしていることの 1 つは、すべてに対してゲッターとセッターを実行するという罠を回避することです。ただし、私が行う作業の多くは、主にデータ コンテナーであるエンティティを使用するものであり、これらの場合にゲッターとセッターが実際に不適切であるかどうかはわかりません。
パブリック プロパティを使用した簡単な例を次に示します。
class Space {
public String name;
public String description;
Space(final String name, final String description) {
this.name = name;
this.description = description;
}
}
プライベート プロパティを使用し、ゲッターとセッターを使用する簡単な例を次に示します。
class Space {
private String name;
private String description;
Space(final String name, final String description) {
this.name = name;
this.description = description;
}
public String getName() {
return this.name;
}
public void setName(final String name) {
this.name = name;
}
public String getDescription() {
return this.description;
}
public void setDescription(final String description) {
this.description = description;
}
}
これらの例では、name
とdescription
フィールドの両方を変更できる必要があります。
name
ゲッター/セッターの例はより明確で、実装の詳細を隠しているように感じdescription
ます。必要に応じて、後でセットで検証することもできます。
ゲッターとセッターが悪であり、アンチパターンであるという議論をいくつか読みましたが、この状況には当てはまらないように感じます。
まだ検討していないオプションがいくつかあるかもしれません。提案をお待ちしています!