私は単なるエンジニアであって学者や研究者ではないため、ここに書いてある内容は科学的に吟味されたものではありません。\\
しかし、普段の仕事の中で気付いた合理性のある内容だと思っています。

!!!オブジェクト指向って?
オブジェクト指向の最初の説明として良く出てくるのが、
*隠蔽
*継承
*多態性
というものです。
これらはオブジェクト指向の特徴を確かに言い表していますが、オブジェクト指向的な設計や実装を初学者が理解するための役に立たないとytpは考えています。少なくとも初心者にとっては百害有って一理無しです。\\
これから説明するオブジェクト指向に関する原則は、実際の開発現場で皆さんが実践することを目的に書いています。いわば、「__開発現場で役立つオブジェクト指向の本質__」を解き明かすために書きました。\\
\\
オブジェクト指向設計に関しては__デザインパターン__という形で様々な本が書かれていますが、パターンは有用ではあるものの全部を一々覚えてはいられません。そもそもパターンというのは、オブジェクト指向の本質を理解した人が設計した有用な常套手段に名前を付けたものです。囲碁で言う__定石__です。\\
しかし定石には必ず理由があり、それらの根底には共通する原則があります。このサイトでは、オブジェクト指向設計における原則を記述しています。つまり、定石を産み出すための原理です。囲碁で言えば手筋(てすじ)が近いでしょうか。\\
これを理解してしまえばパターンに頼ることなく正しい設計にたどり着けると私は考えています。パターンを否定しているのではありません。パターンの奥に隠れた__本質を理解する__ことが大切なのです。\\

!!このサイトを読む上での注意点
このサイトに書いてある内容には、皆さんのこれまでの常識をくつがえすものが多々あります。今までの常識にとらわれずに読んで下さい。可能ならば頭を白紙の状態にして、書いてある内容を純粋に吟味してみて下さい。皆さんの開発にきっと役立つはずです。\\
\\
それでは次ページから、「本には書いてないオブジェクト指向」の始まりです。\\
!!本には書いてないオブジェクト指向のページ一覧
[クラスとはデータ構造]\\
[責務はクラスではない]\\
[クラスにするもの]\\
[小物クラス]\\
[リンゴ一個とリンゴ一山は異なるクラス]\\
[関数とユーティリティクラスは禁止]\\
[privateメソッド禁止]\\
[どのメソッドをどのクラスで実装すべきか]\\