タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

オブジェクト指向に関するblythegirlsのブックマーク (9)

  • オブジェクト指向言語として必須な要素とは何か? - Smalltalkのtは小文字です

    ときどきの雑記帖 リターンズ -おしえて(OOPLの)えらいひと より。お呼びでない…とは思いましたが、私のこれまで調べたことを頭の中で整理するのに役立ちそうなので、できるだけ簡潔にまとめてみます。 ケイのオブジェクト指向(メッセージングのオブジェクト指向)に立脚する場合 このオブジェクト指向のコンセプト パーソナルコンピューティングに係わるものをメッセージングで表現。 それをサポートする言語に必須のもの メッセージング(あるいは、それに準ずる)機構と、メッセージのレシーバ(たいていは、オブジェクト。状態や処理の保持・保護・隠蔽を行なえることが期待される)。 原則として欠いてはいけない機能 可能な限りの動的性。 ストラウストラップのオブジェクト指向(ユーザー定義型のオブジェクト指向)に立脚する場合 このオブジェクト指向のコンセプト 抽象データ型(この文脈ではユーザー定義型を指す)を「クラス

    オブジェクト指向言語として必須な要素とは何か? - Smalltalkのtは小文字です
  • 二つのオブジェクト指向とそれぞれのメリット - Smalltalkのtは小文字です

    似たような話の繰り返しで恐縮ですが、現時点での自分の理解の整理のためのメモ。 前後しますが、こうして改めてまとめてみると、純粋な抽象データ型のオブジェクト指向プログラミングは、メッセージングのオブジェクト指向の影響も多分に受けている OOAD(分析・設計)のテコ入れ無しには、ちょっと弱っちく&古くさい感じが否めませんね(何をいまさら…ですが)。^^; とはいえ、OOAD は OOP とはまた別のものなので、同じ「抽象データ型の〜」あるいは「メッセージングの〜」だからといって対応する OOP とひとくくりにしてよいかというとそういうわけでもないので(整理・分類上は)難しいところです。 ▼ 抽象データ型のオブジェクト指向プログラミング 端的には、「ユーザー定義型(抽象データ型)」を、当初は「クラス」、今はそれに加えて「インタフェース」に準ずる言語機能によるサポートを前提として実践するプログラミ

    二つのオブジェクト指向とそれぞれのメリット - Smalltalkのtは小文字です
  • プロトタイプベースの誤解 - Smalltalkのtは小文字です

    クラスベースのOOとプロトタイプベースのOOで決定的に違うのは、プログラムを動かしている最中にオブジェクトが出来ること、すなわちメソッド(method)を追加したり再定義したりできるかだ。 404 Blog Not Found:タイプ・クラス・プロトタイプ - OOの語彙 これはひどい。w オブジェクトに対して動的(実行時)にメソッドやインスタンス変数を追加できることと、“プロトタイプベース”においてオブジェクトがそれが属するクラスによらず独自のメソッドやインスタンス変数を持てることとは別の話です。 あらためて、「プロトタイプベース」という用語自体に問題が多いことを実感させられる記事でもありますね。個人的には、クラスを用いないオブジェクト生成手法の話でないのならば(つまり、「プロトタイプの複製でオブジェクトを生成する」ことが話の筋でないならば)「プロトタイプベース」ではなく、「インスタン

    プロトタイプベースの誤解 - Smalltalkのtは小文字です
  • クラスはオブジェクトであると言い切れない大人の事情 - みねこあ

    カレーなる辛口Java転職日記さん経由、初心者がJavaを“超高速”で学ぶためのコツ | 日経 xTECH(クロステック)。久しぶりに酷すぎる記事を見て呆然。なんですか、これは。 これが日経ソフトウェア2005年2月号に記事だというから、かなり憂。Cマガジンが無くなり、オープンソースマガジンも来月でおしまい、残った日経ソフトウェアがコレかい、・・・というのと、青木淳さんの連載が載っている同じ雑誌にコレかい、・・というので二重にガックシ。 「クラス」メソッドじゃないっ!「静的」メソッドなんだ!! なんだか「クラス」と「オブジェクト」の違いが難しいそうですが、それって C++ 族なOOPが殆ど「クラス指向」なのに由来してると思います。 クラスとオブジェクトの混乱を取り除く良い方法は、クラスを無くしてしまう*1か、クラスもオブジェクトにしてしまうかです。とてもシンプルな解決方法だと思います。

    クラスはオブジェクトであると言い切れない大人の事情 - みねこあ
  • 複雑なモノを簡単に扱うための技術なんだから,元々簡単なところには要りませんよね,という話 - mono_log_ue

    祭りと聞いて. 「オブジェクト指向言語でオブジェクト指向っぽいプログラミングをしない」のはNG? | スラド デベロッパー 実はオブジェクト指向ってしっくりこないんです!:気分はstatic!:エンジニアライフ Microsoftの功罪? - give IT a try 要約すると,「現場じゃ結局OOって不要じゃね?」という趣旨のコラムのコメント欄が炎上しました,という感じ.こういうのは,ド素人が勝手に言っているだけという例もあるけど,書き方が悪いだけで背景には割と重要なことがあって,掘り下げてみると意外と勉強になったりする.するのだが,大概は表層だけなめた一般論と信者vsアンチの水掛け論と単なる野次で埋もれて不毛に終わるのが常. でも今回は途中でとても良いことを言っておられる方が居た.というのが3個目のリンク.要するに,OOを意識せずに済むフレームワークに乗っかって開発してるから,OOを

    複雑なモノを簡単に扱うための技術なんだから,元々簡単なところには要りませんよね,という話 - mono_log_ue
  • オブジェクト指向の概念の発明者は誰ですか? - Smalltalkのtは小文字です

    忙しい人のためのまとめ 一般に「オブジェクト指向プログラミング」と呼ばれる考え方には発案者が異なる二系統がある。(ただし簡単のため、次のうち前者から批判的に派生して生じたプロトタイプベースのオブジェクト指向はここには含めていない) アラン・ケイによる、変化に強い長期運用可能な遅延結合システムを SIMULA67 にあった「オブジェクト」をメッセージの受け手とすることで実現(オブジェクトにメッセージ送信)するアイデアに基づく「メッセージングのオブジェクト指向」と、 ビアルネ・ストラウストラップ(前後して抽象データ型を発案したリスコフ人、オブジェクトクラスを考えたニガードらSIMULA陣営、Eiffelのメイヤーらも同様の着想を得ている)による、ユーザー定義型(抽象データ型)を SIMULA67 にあった「クラス」という言語機能を使って実現(カプセル化、継承、多態性)するアイデアに基づく「抽

    オブジェクト指向の概念の発明者は誰ですか? - Smalltalkのtは小文字です
  • リスコフの「抽象データ型」について - Smalltalkのtは小文字です

    「A History of CLU」(PDF) の 2. Data Abstraction からの抜粋。 概要 「抽象データ型」という考え方は、リスコフらにより 1972 年の終わりから 1973 年の夏頃までにまとめられた。 「抽象データ型」は、データとオペレーションのセット。 データの内部情報へのアクセスはこのオペレーションを介してのみ行える。 データの内部情報に関する詳細は隠蔽されている。 成立までの流れ 当時は、プログラミングの効率やコードの質を向上させるための手法に大きな関心が払われていた。 二つの流れが存在。ひとつはダイクストラの構造化プログラミング。もうひとつがモジュール化。 モジュール化については、リスコフも自ら「パーティション」という機構を提唱。 これはダイクストラの「抽象化レベル」という概念に基づいている。 システムは抽象化レベルごとパーティションで表わされ、パーティシ

    リスコフの「抽象データ型」について - Smalltalkのtは小文字です
  • カプセル化、情報隠蔽、データ隠蔽 - ぐるぐる~

    あちこちのサイトを見てると、間違った解釈をしてるのが多い。カプセル化なんて、情報隠蔽まで含んでるのが常識になりつつあるような。。。ここまで一般化してると情報隠蔽してるのがカプセル化というのが常識なのかも。 カプセル化・情報隠蔽・データ抽象化 - 今日の役に立たない一言 − Today’s Trifle! − カプセル化と情報隠蔽、データ隠蔽の違いがよくわからくなったので、手持ちので調べてみた。 基準 基準としては、 カプセル化、情報隠蔽、データ隠蔽の関係 カプセル化は隠蔽を含んでいるかどうか 対象はクラスのみか、そうでないか などなど。 一番目はそのまんま。二番目は、 // 隠蔽せずともカプセル化か class Hoge { int hoge; // なんかhogeを使うメソッド } // 隠蔽しなければカプセル化ではないか class Piyo { private int piyo;

    カプセル化、情報隠蔽、データ隠蔽 - ぐるぐる~
  • 「オブジェクト指向プログラミングとは何か?」[Stroustrup87] (PDF, ただし '91 改訂版) - Smalltalkのtは小文字です

    関連:[OOP] オブジェクト指向の概念の発明者は誰ですか? くだんのオブジェクト指向3点セットの元になったともくされる論文のメモ。抽象データ型に加えて、以下の機構がオブジェクト指向プログラミングをサポートするのに必要とされる。 特殊な関数呼び出し機構(仮想関数、動的結合) 型チェック機構 継承機構 多重継承機構 アクセスコントロール機構 以上は5点ですが、ここから静的型言語(あるいは C++ )に特異的な3点(型チェック機構、多重継承機構、アクセスコントロール機構)が拒絶されて「抽象データ型+ 継承・動的結合」となったのち、「カプセル化、継承、多態性」に変化して定着したものと思われます。アクセスコントロール機構は、いったんは拒絶されたものの、第1項の“抽象データ型”が“カプセル化”に言い換えられるようになったのを契機に、これに組み込んでも(組み込まなくとも)よい…ということになったのでし

    「オブジェクト指向プログラミングとは何か?」[Stroustrup87] (PDF, ただし '91 改訂版) - Smalltalkのtは小文字です
  • 1