Contents
オブジェクト指向言語の分類
オブジェクト指向言語と一言にいってもいろいろと分類ができます。
ずいぶんこのコンテンツは古いです。。変な感じの記述は消去中。
クラスベース
クラスからインスタンスを生成する、という視点で開発されたオブジェクト指向言語の事をクラスベースオブジェクト指向言語(Class Based Object Oriented Language)と呼称します。
Javaなどはこれにあたります。
プロトタイプベース
ある原形(プロトタイプ)からそれに機能を付加した実体を作成する、という視点で開発されたオブジェクト指向言語の事をプロトタイプベースオブジェクト指向言語(Prototype Based Object Oriented Language)と呼称します。
JavaScriptなどはこれにあたります。
まとめ
何か機能差があるかというと、それほどない場合が多いです。ただ視点が違うため、注意すべき点は多いです。
http://starry.night.nu/web/prog/javascript/c03_know_that_js_is_an_oopl.html
オブジェクト指向の嘘たち
オブジェクト指向では現実世界をモデル化する
嘘です。ってかだれもそんな事いってないと思う。しょういう記述のある書籍って見た事ない。
オブジェクトの説明にたまたま現実の物を例にして説明している書籍は見た事あるけど、オブジェクト思考その物が現実をモデル化する物という記述をしている物は手元の書籍にはないのだが、実際にあるのでしょうか?
現実世界をモデル化しても意味ないです。我々は現実を解決するためにモデル化するのです。理想というか望む物をモデリングします。
既存システムをモデリングしないのか?という疑問があるかもしれませんが、一部はしてもそれはあくまでも理想を作成するための作業にすぎません。
そもそもモデリングが実現可能となる物の理想形をモデル化するのがモデリングの本質です。
モデリングはモデルを実現可能とする事を目的とするので、当然現実をモデリングする事も可能ですが、それが目的ではありません。
理想の世界を現実の世界にマッピングするのがモデリングです。オブジェクト指向は理想をオブジェクトにマッピングする事で現実にマッピングしようとする事です。
オブジェクトの識別は難しい
嘘です。オブジェクトの識別は難しくありません。業務や仕様を正確に構築する事が難しいのです。
その他
この時は若かった(ってそんなに前ではない罠)。今ではかなり違う説明になると思います。文章下手糞だな自分。もっとまとめて書けや。
モデリングサンプル
オブジェクト指向ソフトウェア開発においては小さなモデルでいくつかモデリングをする事がのぞましいです。
業務モデリングならば実際に存在する業務をモデリングするのが最初はいいでしょう。
- Amazon.co.jpのシステム
- 航空券販売サイト
- 出会い系サイト
などは具体例が多いのでモデリングしやすいかもしれません。
参考サイト
http://itpro.nikkeibp.co.jp/free/NIP/NIPCOLUMN/20030425/2/
http://www.chimimo.com/mt/archives/cat_eiaee.html
http://homepage3.nifty.com/akon/main.html