[485] 思うに
投稿者:N
2007/02/20 02:13:25
はじめまして。面白く読ませていただきました。
思うに、Cなどでは構造化設計に始まり、原始的な
オブジェクト指向的設計まである程度踏み込んで
いたのではないかと思います。この点は同じ論を
唱えていらっしゃると思います。
ただ、手続き型言語では「オブジェクト指向設計」
とは「呼んでいなかった」だけではないかな、と
個人的には思っています。
Cで言うと、
・データを持つオブジェクトが操作方法を知っている
>より緻密なソースファイル分割
>関数名のルール付け
>データ操作関数のファイル内限定
・インターフェースの限定による(使用者から見た)隠蔽
>static関数、ファイル内static変数(privateメンバに相当)
・ポリモーフィズム、継承、同じ動作は同じ名前に
>これはクラス型言語にしかできない機能ですね
これらを、言語仕様面からより便利に使えるように
したのがC++なりJavaなりであって、オブジェクト指向
のような概念的なことは(意識するしないをおいて)
近代の開発では行っていたと思います。
で、私の考えるオブジェクト指向とは、
「クラス(部品)を作り、組み合わせてアプリケーションを作る」
ことであると考えています。七面倒くさい用語はそれを
表現するための方便に過ぎないと。
このような(オブジェクト指向的)作り方をすると、手続き
型言語で感じていた以上に、ライブラリ的立場の部品と本来
のアプリケーション的立場の部品をいやでも意識させられる
ことになります。
従来であれば、「じゃあこの機能とこの機能は整理して別に
ライブラリ化しよう」ということになるのでしょう。それは
クラス型言語でも可能だと思いますが、クラス型言語なら、
ライブラリ化という結構エネルギーを使う作業をしなくても
クラス単位で再利用という手軽な使い方ができるのは1つの
メリットかと思います。
長くなりましたのでこのへんで。