タグ

rubyとオブジェクト指向に関するNobiNobiKotaのブックマーク (6)

  • オブジェクト指向の概念の発明者は誰ですか? - Smalltalkのtは小文字です

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

    オブジェクト指向の概念の発明者は誰ですか? - Smalltalkのtは小文字です
  • まつもと直伝 プログラミングのオキテ 第4回(3)

    図7 明示的な型チェックを実行した例<BR>Stringクラス以外を受け取った場合,例外を発生させている。 動的型のメリット では,もう一方の動的型についてはどうでしょう。動的型を採用したプログラミング言語の最大の利点は,ソース・コードが簡潔になることです。プログラミング言語はより簡潔により多くのことをコンピュータに伝えるために進化してきました。きちんと動き,エラーも検出できるのであれば,プログラムの動きの質とは関係のない型指定などない方が良い,というのも一つの考え方です。 プログラムが簡潔に記述できれば,プログラムを書くときに,型のような処理の質に関係ない部分のことを考えなくても済みます。質に集中した簡潔な記述ができれば,生産性も向上することでしょう。 一方,いくら簡潔に記述できてプログラムが書きやすくなっても,型情報がなければ,プログラムを読解しにくくなるのではないか,という懸念

    まつもと直伝 プログラミングのオキテ 第4回(3)
  • まつもと直伝プログラミングの掟1(1) プログラミングとオブジェクト指向の関係(上):IT Pro

    プログラマを目指す人々の中にも,「オブジェクト指向は難しい」とか,「なかなか分からない」という印象を持つ方が多いようです。そこで,Rubyを題材にオブジェクト指向という考え方について説明していきます。(ネットワーク応用通信研究所 まつもと ゆきひろ) プログラミングとは,コンピュータに作業手順を教え込むことです。ただ,コンピュータは決して賢くないので,言われた通りの作業をこなすことしかしません。コンピュータが優れているように見えるのは,単に超高速で計算する能力があるからです。効率の悪い作業を命じられても,プログラムによって指定された通り,文句の一つも言わずに黙々と処理します。コンピュータの能力を生かすも殺すもプログラムの書き方ひとつなのです。 ですから,プログラムを書く人(プログラマ)はコンピュータを自分の意のままに扱う人であり,コンピュータの「ご主人様」であると言ってもよいでしょう。にも

    まつもと直伝プログラミングの掟1(1) プログラミングとオブジェクト指向の関係(上):IT Pro
  • オブジェクト指向プログラムでgetter/setterメソッドを使わなければならない10の理由

    オブジェクト指向プログラムで getter/setterメソッドを使わなければならない 10の理由 福盛 秀雄 fukumori at m.ieice.org JavaC++などのオブジェクト指向言語でプログラムを書いているときに、単純なメンバ変数を参照したり操作するために anObject.getX() [以後これをgetterメソッドと呼ぶ] とか anotherObject.setY(y) [以後これをsetterメソッドと呼ぶ] と書くのはなぜだろうと思ったことはないだろうか? int型の変数ひとつを操作するのになぜわざわざメソッドを定義するのだろう? 単純に代入を使えばいいじゃないか? この文章はそんなあなた(かつての僕も含む)が、getter/setterメソッドを使うべきである理由についてまとめたものである。 ということで早速論へ。 1. クラス内部のデータ表現を変えた場

  • ITpro - まつもとゆきひろのプログラミング言語論(2)

    リスト4 動的言語の柔軟性<BR>Rubyのライブラリには,IOとStringIOというクラスが存在する。StringIOはIOと継承関係はないが,ほぼIOと同じ名前のメソッドを備えている。このため,ほとんどの場面でIOと同じように利用できる。例えば文中に登場したlog_puts()の引数として,StringIOクラスのオブジェクトも指定できる。 オブジェクト指向とは密接な関係がある 現在では,ほぼすべての動的言語がオブジェクト指向機能を提供しています。もちろん静的言語にオブジェクト指向機能がないわけではないのですが,オブジェクト指向と動的言語にはかなり密接な関係があります。 世界最初のオブジェクト指向言語はSimulaです。Algolの影響を受けた静的型の言語だったのですが,整数などのデータ型を除いたすべてのオブジェクトは「Ref」という一つの型を通じて取り扱われました。どのクラスのオ

    ITpro - まつもとゆきひろのプログラミング言語論(2)
  • Rubyで学ぶオブジェクト指向/デザインパターン

    Rubyで学ぶオブジェクト指向入門 オブジェクト指向プログラミング入門(その1).pdf オブジェクト指向プログラミング入門(その2).pdf オブジェクト指向プログラミング入門(その3).pdf オブジェクト指向プログラミング入門(その4).pdf 添付1 論理シミュレータクラス図.pdf 添付2 Pque説明.pdf 添付3 回路シミュレーション例.pdf 添付4 LogicSimソースコード オブジェクト指向プログラミング入門(その5)簡易システム性能評価シミュレータ.pdf オブジェクト指向プログラミング入門(その6)RUnitに適用されたデザインパターン.pdf Rubyで学ぶデザインパターン パターンサンプルコード このサンプルコードは、Java言語で学ぶデザインパターン入門 結城 浩(著) (ソフトバンクパブリッシング ISBN:479731462)に掲載されているサンプルソ

  • 1