2019-01-01から1年間の記事一覧
オブジェクト指向において「Getter/Setterを作るな」というのは様々な場所で言われていることだが、これが一番難しくて苦労する。Getter/Setterを排除するための対処法として「デメテルの法則」や「Tell, don't ask.」などが世の中のあらゆる場所で紹介され…
あるクラスの中で同じ処理が何度も出てくることがある。 このときコードの重複を排除するためにprivateメソッドを使うことを思いつく。 class SomeDevice { // デバイスの温度を取得 public float GetTempareture() { byte[] rawData = input.read(); return…
ご存知の通り、オブジェクト指向の三大要素であるはずの継承においてはたくさんの問題点が報告されている(こことか、こことか)。確かに継承よりもコンポジション(委譲、合成)のほうが優れている点が多い。下記はその一例だ。いま、Windows.FormsのButton…
私が出会った、オブジェクト指向エクササイズ*1を凌ぐほどの素晴らしいルール。「-erで終わるクラスを作るな」私はこれを見たとき何言ってんだこいつと思った。私が当たり前のように作ってきた Renderer、Manager、Helper、Controller…などのクラスは間違い…
カプセル化はオブジェクト指向プログラミングの三大要素*1のひとつでオブジェクト指向プログラミングの入門書の最初に出てくる言葉だ。そして、カプセル化の説明としてよく使われるのが「データを封じ込めメソッドを介してのみ変更可能とすることでデータの…