[651] Re:オブジェクト指向「初」入門
投稿者:CES
2007/02/20 02:13:25
オブジェクト指向を学ぶには、2つのアプローチがあると思います。
ひとつは技術面から、もうひとつは論理面からです。
技術面からというのは、よく言われている「クラス、継承、カプセル化、多態性、OCP」などのキーワードから理解していく方法です。実装面からのアプローチとも言えます。
プログラムをいかにうまく分割し、個々の保守性を上げるかという点が重要です。
論理面は、思想面とも言えるかもしれません。
例えば、「クラス」という用語の意味は「分類」であって、「原型」ではありませんから、「クラスからオブジェクトを作る」という言い方はおかしいのです(実装面からの理解であれば問題ありません)。
オブジェクトは作るのではなく、既にこの現実世界に存在しているのです。それを抽象化して、分類したものがクラスであるというのが、この考え方の第一歩ではないかと思われます。
こっちの考え方は、突き詰めると数学や論理学の知識が必要になってしまうので、実装面ほど簡単ではありません(私も勉強したいのですが、それらベースとなる知識が足りないため足踏みしています)。
技術面の方がわかりやすいのですが、論理面を知らないと、オブジェクト指向の真髄を知っているとは言えないと思います(技術面だけ理解してオブジェクト指向を知った気になっていると、失敗すると思います)。そして、論理面がわかってくると、技術面が、すとんと胸に落ちるように理解できるようになるのではないでしょうか。
オブジェクト指向がこれだけ流行っているのですから、論理面からの入門ももっとあっていいと思うんですけどね…。