オブジェクト指向って何だ?
オブジェクト指向って何だ?
クラス,インスタンス,継承,アクセス修飾子,メソッド,フィールド,インタフェース,抽象クラス,ポリモーフィズム
一つ一つの用語の意味は理解しているつもりです。
ThoughtWorksアンソロジー アジャイルとオブジェクト指向によるソフトウェアイノベーションの5章「オブジェクト指向エクササイズ」を読みました。
さてさて,オブジェクト指向とは何でしょう? もっと言うと正しく奇麗で理想的なオブジェクト指向とは何でしょうか?
この章の2節では,筆者の経験に基づく9つのルールが述べられています。
1. 1つのメソッドにつきインデントは1段階までにすること 2. else句を使用しないこと 3. 全てのプリミティブ型と文字列型をラップすること 4. 1行につきドットは1つまでにすること 5. 名前を省略しないこと 6. すべてのエンティティを小さくすること 7. 1つのクラスにつきインスタンス変数は2つまでにすること 8. ファーストクラスコレクションを使用すること 9. Getter、Setter、プロパティを使用しないこと
これらのルールは,,5章2節の各小節においてその理由・背景が説明されています。 (こちらのリンク先の目次でそれぞれのルール名だけは確認できます。)
1つ目のルールはインデントの段数が深くなったらメソッド化すればいいのだな, 9つ目のルールは変数・クラス・メソッドの名前は大切だからその通りだなと,目次だけ読んでもなるほどと思えました。
他のルールでは,目次だけ読んだ段階では「えっ?」なんでと思ったり,読んでもまだ腑に落ちないものもありました。 さて,オブジェクト指向,正しく奇麗で理想的なオブジェクト指向とは何でしょうか?
じっくりもう一度勉強してみようと思います。