generated at
getter
privateなpropertyに外からアクセスするためのpublic method

ts
class UserCreateInputData { constructor(private userName: string) {} get getUserName(): string { return this.userName; } }


getterの存在意義
OOPには、「データではなく、振る舞いに依存する」のが良い、という思想がある
propertyに直接アクセスすのではなく、geterを挟むことで「ふるまいに依存する」に変化するらしい
表現自体にあまりしっくり来てはないないがなんとなく言いたいことはわかるmrsekut
getterを定義することで、そのgetterのみが「全世界で唯一そのデータにアクセスできるモノ」になる
どこからでもアクセスできる存在から、1箇所で定義されるものへと変わる
getterを定義し、間接的にデータにアクセスすることで、そのデータの責務に変更が入った際に、依存箇所を修正しやすい
この文脈で対象にしているpropertyに、public/privateという区別はなさそうmrsekut
例えばcountというpropetyを持っていて、これを様々な場所で使っているとする
外部でも、内部でも
ts
class P { count: number; .. hoge() { const a = this.count * 100; ... } }
ここで、countの表すものに修正が加わったとき、 this.count とか p.count で参照しているところを全て修正する必要がある
しかし、getterを挟んでいれば、getter自体を修正するだけで済む
ts
class P { get getHoge() { return this.count * 100; } }
getter名が実装とズレる気がするが、この修正も容易ではあるmrsekut
ただたんにpropertyをそのまま返すmethod」がgetter、というわけじゃないのね #??



private propertyに対するgetterの存在理由
こちらはこちらでさらに理由があるっぽい #??
アンチgetter派の意見は、ここに対してのアンチっぽいが、そもそものここの存在意義を知らんのでなんとも言えないmrsekut
これとか
「getterを使うこと」が悪いのか?という気もする
getterの使い方を工夫しよう、という主張じゃダメなのか?



propertyに外部からアクセスできるかどうか
Rubyの場合はpublic/private問わず外部からはアクセスできない?
試してはないが、そうっぽいというのを目にしたmrsekut
故に、getterが必須となる、と理解したが本当のところは知らん






getter定義を楽にする構文
Rubyには attr_reader というのがある
arrt_readerをdefaultにすればええやんmrsekut



参考