概要
会社でオブジェクト指向勉強会の登壇用に自宅で作ったスライドその2です。
その1: https://nrslib.com/oop-slide-1/
その2: https://nrslib.com/oop-slide-2/ ← イマココ
その3: https://nrslib.com/oop-slide-3/
スライド
https://speakerdeck.com/nrslib/oop2
解説
カプセル化
一度に色々な話をしてもわかりづらいので、カプセル化を実践するためのガイドラインを七つ用意しました。
- 初期化はコンストラクタ
- 自由な型を便利に使わない
- メソッドに前後関係を作らない
- できることを減らす
- 副作用をわかりやすく
- setter は使わない
- getter は使わない
ポリモーフィズム
ポリモーフィズムはいくつか種類があって、継承だけではないということと、継承も型継承(いわゆる interface)と実装継承(いわゆる Inheritance)の二種類があります。
これら継承を利用するときは、トップダウンな作り方を心がけるとポリモーフィズムを上手く利用できます。
実装継承についてはポリモーフィズムを実現するだけであれば不要です。
もし実装継承 = ポリモーフィズムであるならば、実装継承がないプログラミング言語(プロトタイプチェーンな javascript とか)はすべてポリモーフィズムを実現できないことになってしまいます。
型継承実践
継承は
- 生成
- 利用
- 実装
の三要素を意識すると作りやすいでしょう。
まとめ
このスライドを理解すれば、いわゆるオブジェクト指向の要素については網羅されていると思います。
次回はパラメータ多相(ジェネリクス)と安全な実装継承についてを話す予定です。