>オブジェクト指向=モジュール化+マルチプルインスタンス
>ということでよろしいのでしょうか。
>ただ、そうしますと、再入門講座はどうしても不適切だと言わざるを得ません。
http://kmaebashi.com/programmer/object/othello.html
ここは読みましたか?
ここでは、まず「モジュール」としてboard.cを作り、その後それを複数生成
できるようにしています。
| 以前のboard.cというモジュールは、カプセル化は実現できていましたが、
| 静的にひとつしか存在しませんでした。それが、必要に応じていくつも生成できる
| ようになったものがオブジェクトです。そして、このようにオブジェクトを
| 必要な数だけ生成し、それに付属した関数を呼び出しながら動作していくという
| プログラミングスタイルが、「オブジェクト指向」であるわけです。
つまり、私の説明では、
>オブジェクト指向=モジュール化+マルチプルインスタンス
まさにこれが前提になっているのであり、なのになぜ不適切といわれるのかが
わかりません。
>・マルチプルインスタンスはモジュール指向以前からあった
> →オブジェクト指向もモジュール指向も知らない人でも、これは知っている
>・非オブジェクト指向、オブジェクト指向の知名度に比べて、モジュール指向の
> 知名度が低い
> (私のように、オブジェクト指向とモジュール指向を混同している可能性が高く、
> 非オブジェクト指向→モジュール指向→オブジェクト指向 という経路ではなく、
> 非オブジェクト指向→オブジェクト指向 という経路を辿ると思っている)
…ということは、
「モジュール」→「マルチプルインスタンス」
という説明の順序は逆で、
「マルチプルインスタンス」→「モジュール」
という順序のほうがよい、という主張でしょうか?
そうなのかもしれませんが、ではその順序で説明したら、どんな感じの説明に
なるのでしょうか。私にはちとイメージがつかめません。
また、上のページでこう書いたように、
| 既に書いたように、board.cはオブジェクト指向とは言えません。
| そして、多くのCプログラマには、「この設計でいったい何がいけないのか?」と
| 思えるのではないかと思います。
そこそこ経験を積んだCプログラマなら、「モジュール化」はある程度意識して
いるものです。また、オブジェクト指向の入門書を読めば、「カプセル化」の
話はたいてい書いてあります。
結果として、
http://kmaebashi.com/programmer/object/response3.html
こちらで示したように、
284 :デフォルトの名無しさん :03/09/16 11:45
| データの局所性を高めたり隠蔽するってさ、
| 一データ群を取り扱う関数群を一つのソースにまとめて、データへのアクセスは
| 専用のI/O関数を介してやり取りするのと違いはある?
| Cでもこういうのを徹底しとけばいいんでしょ?
こういう誤解をしてしまう可能性が非常に高いわけです。
# 284さんはその後うちの掲示板にも登場されました。
# やはりboard.cのようなものをイメージされていたようです。
私の「再入門」は、そういう読者をターゲットとしているつもりです。
CESさんのおっしゃるような「オブジェクト指向もモジュール指向も知らないが、
マルチプルインスタンスは知っている」人というのは、具体的にどんな経歴(言語
経験)で、どんなプログラムを書く人なのでしょうか。
少なくとも私には、具体的にイメージできません。