タグ

OOPに関するglcsのブックマーク (13)

  • JavaScriptの再利用とapply

    私がこういうの大嫌いなのは一部では有名な話ですが、職場では寛容に、ネット上では偏屈に、がポリシーなので素直に流しました。

    JavaScriptの再利用とapply
  • JavaScript によるオブジェクト指向プログラミング

    JavaScript によるオブジェクト指向プログラミングを説明する。 対象とするのは、JavaScript に言語的な興味を持つ人や、XUL などを併用して JavaScript で割と格的なアプリケーションを作る人などである。 説明の都合上 Java の知識を前提としている。 参考文献はECMA-262 Edition 3 (errata)およびJavaScript 1.5 (mozilla.org)。 バグがなければ ECMA-262 Edition 3 を実装した処理系で動くと思う。 互換性を全く考慮していないので、それ以外の処理系では動かない。 一応 Rhino で動作確認している。 基的な作法 サンプル・コード まずは例から入る。 取っ付きやすいように Java のサンプル・コードを示す。 説明の都合上 _counter と _access_counter は public

  • 技術日記@kiwanami - JavaScriptでの継承について調べてみた

    JavaScriptはプロトタイプOO言語ということで、インスタンスコピーによる継承とカスタマイズを用いるのが素直な方法なのだと思う。JavaScriptでは、単純にインスタンスを丸々コピーする方法では効率が悪いということで、 prototype による非対称スコープチェーンを用いる方法と、prototypeへのプロパティのコピーを用いる方法がよく用いられている。 しかしながら、サイトによって良い悪いがばらばらで、結局これらの方法のどれを使うのが良いのかよく分からなかったので、どういう違いがあるのか調べてみた。 prototypeスコープチェーンを操作 参考文書: http://faces.bascule.co.jp/inheritance.html プログラマのためのJavaScript (11):継承についてもう少し - 檜山正幸のキマイラ飼育記 (はてなBlog) [鏡] C/C++

    技術日記@kiwanami - JavaScriptでの継承について調べてみた
  • PHPでOOP

    2008-03-01 PHPのOOP構文2008-02-28 MVCフレームワーク デザインパターン UML2008-02-24 オブジェクト指向で作ってみる その3 mvc12008-02-23 MenuBar FrontPage 掲示板を作ってみる2008-02-17 オブジェクト指向で作ってみる その2 PHPのオブジェクト指向プログラミングを勉強しましょう。 どういう順番で勉強していけば分かりやすいでしょうか? PHPでOOP このページは、2chのWEBプログラミング板にある「PHPでOOP」スレッドのまとめページです。 1 :1 ◆SWtzLesEmM :2007/02/23(金) 13:35:52 PHPを使ってプログラミングするとき、プロシージャ指向(手続き型、構造化プログラミング)でもできますが、オブジェクト指向を使った場合の恩恵を享受するために、PHPでオブジェク

    glcs
    glcs 2008/06/05
  • オブジェクト指向プログラミングの学習法(初心者向け) - カレーなる辛口Javaな転職日記

    個人的な話をしますと、オブジェクト指向の入門書に出てくる、「クルマのたとえ話」とかは当に意味わかりませんでした。こちとら、すっかり手続き脳なもので、そんなんでmainとかどうやって書くのよ?みたいな。<我ながらヒドイ http://d.hatena.ne.jp/LazyCoder/20070806/1186417299 追記 PHPのオブジェクト指向を勉強してる。というか仕事での必要性を感じてやってるけど、正直オブジェクト指向の良さがさっぱりわからん。(中略) よくあるオブジェクト指向の解説には車がオブジェクトでタイヤがファンクションでみたいなんかいてるけど、実務で使うプログラムの設計の仕方がわからん。 http://anond.hatelabo.jp/20070427093912 こんな説明を読んで、なんだかわかったような気分になれる人は、どっちかというと思考力に欠ける人なんじゃない

    オブジェクト指向プログラミングの学習法(初心者向け) - カレーなる辛口Javaな転職日記
    glcs
    glcs 2008/05/19
  • ダイコン時代の設計手法 - 奇妙なクラス抽出法 - ひがやすを技術ブログ

    オブジェクト指向やモデリングのでこのような文章をみたことがないだろうか。 クラスを抽出するためには、ユースケースから名詞、動詞を まず抽出します。名詞はクラス・属性の候補になり、 動詞は操作や関連の候補になります。書いてあることは間違ってないように見えるが、しかし現実的ではない。 なぜならユースケースだけでは情報が足りないからだ。 試しに適当なユースケースを使って上記のようなクラス抽出を試みて欲しい。 1つのユースケースだけだと情報が足りないのは当たり前だが、 すべてのユースケースで試みても情報が足りないのはすぐに感じてもらえると思う。 その対策として、これまでの私は、ユースケース記述にインプット・アウトプットの 補足仕様書をつけてそこに足りない情報を記述するようにしていた。 しかし、良く考えてみるとこれも、ユースケースが情報を分析するための 道具としては中途半端なのが原因だと思う。 や

    ダイコン時代の設計手法 - 奇妙なクラス抽出法 - ひがやすを技術ブログ
  • まつもと直伝 プログラミングのオキテ 第3回(1)

    今回は継承についてより深く学びます。特になぜ多重継承が必要なのか,多重継承にはどのような問題があり,JavaRubyがどのように解決しているのかを学びます。 前回はオブジェクト指向プログラミングを構成する3原則(ポリモーフィズム,データ抽象,継承)のうち,継承について扱いました。人が一度に把握,記憶できる概念の数には限りがあること,これを解決するため,クラスのうち似たような部分をくくり出す仕組み(継承)が必要であることを解説しました。継承はプログラムの構造化,抽象化の流れが自然に進化した形として登場したとも説明しました。 しかし,最後の部分は厳密には正しくありません。構造化,抽象化とは,共通部分をスーパークラス(親クラス)としてくくり出すボトムアップ・アプローチを意味します。このように継承が誕生したのであれば,最初から複数のスーパークラスを持つことができる多重継承*1が主流だったに違いな

    まつもと直伝 プログラミングのオキテ 第3回(1)
  • 【 ほでなすPHP 】 PHP5の基本

    続・PHPの基::PHP5の基 PHP4からPHP5になって、クラス・オブジェクト関係の仕様が大きく変更・機能強化され、また「例外処理」その他の機能が追加されました。 このページは「PHPの基PHP4対応のPHP講座)」のページの続編(PHP5の基編)です。このページでは、PHP5で変更・追加された各種機能について解説しています。 目次 オブジェクトの代入 【clone()命令】 メンバのアクセス制限 【public、protected、private】 スタティックメンバ/クラス定数 【::演算子、static、self、parent、const】 コンストラクタとデストラクタ 【__construct()、__destruct()】 特殊メソッド/オートロード 【__*()メソッド、__autoload()関数】 オブジェクト引数のクラス指定 例外処理 【try、thro

  • UML2メタモデルを読む- 知識とは何か?

    前回「ソフトウェアは知識の結晶」はソクラテス式対話編その2として「知識」とは何かについて考えてみました。 知識は学習と実践を繰り返して体で覚えるものである 知識は仕事の原動力である。仕事とは顧客に価値を生み出すことである。ゆえに知識とは価値を生み出す原動力である 知識は凝集させて結晶化させる人と結晶を解放して利用する人がいる。この結晶は利用者にとっての価値である この光り輝く結晶こそが(広義の)ソフトウェアであり、それは直接には目に見えないし手で触れない。しかし確かに存在するものである。存在を感知できる人にとっての価値である 今回はUML2仕様書を題材にして「メタモデル」を読みながら、あらためて「知識とは何か?」について考えてみたいと思います。 [登場人物] ソクラテス ソクラテスの弟子筋の某 司会 司会 UMLは知識を表現するための1つの道具です。UMLで表現されたモデルは知識の結晶です

    UML2メタモデルを読む- 知識とは何か?
  • 2004-08-29 - 引用するだけの日記

    glcs
    glcs 2008/01/24
    ラオウの例えがなんか面白かった
  • 2006-10-09

    モデラーはいつも抽象的な現実しか語らない。 概念なんだからしょーがねーだろ っと言われるかもしれないが、 実際問題使う人たちが理解に苦しむのであれば 提供側はもちっと考えるべきである。 ユーザを苦しめるのがベンダの仕事か?ってことにYesYesYesと答えるのは ユーザをないがしろにしている事実にほかならない。 ポリモルフィズムを語る際に、必ずコードが単純になるよってことしか言わない。 再利用性が高まることを示すにはサンプルコードはあまりにも少ないのだ。 理解を促すために必要なのは前提と結論と過程の3つであり、 巷にあふれる説明には過程がカケラしかない。 ふっとぐぐったらこんなんみつかったのだが、中身はひでぇもんだ。*1 コードに落とし込む時、メソッドの役割は2種類必要になる。 ・実処理 ・実処理を呼び出すだけの処理 *1:世で見る普遍的な言葉という意味では「平均的」なのだが、 世の中の平

    2006-10-09
  • Singletonパターン

    ふつうのオブジェクトは、どこで生成して、どこで保持して、…ということを、きちんと考えないといけない。いろいろな箇所で使う場合は、関数やクラスの間で、オブジェクトを受け渡してあげないといけない。 ところが、Singletonは、そのようなことをまったく考えずに、アプリケーションのどこでも自由に使える。 これは、よく考えてみると、次のようなコードと同じである。 つまり、グローバル変数の代用として、Singletonパターンを使ってしまっているケースがある。 変数をグローバルに宣言してしまえば、どこからでも参照できるので、手軽である。そのため、プログラミングの初心者には、グローバル変数を多用したがる人もいる。 グローバル変数を多用するのが誤った考えであることは、大抵の人は理解している。にも関わらず、グローバル変数の代用として、Singletonパターンを使っているケースが、少なくない。 この背景

  • デザインパターン習得編

    ホーム < ゲームつくろー! デザインパターン習得編 コンセプト デザインパターン事始め 生成に関するパターン Abstract Factory 一塊のオブジェクト群を沢山の種類用意する Builder 同じ生成過程で完成する色々なオブジェクト Factrory Method 子オブジェクトを親クラスの関数で作る Prototype 原型を用意して、後はコピーコピーコピー Singleton 存在するオブジェクトは1つだけ 構造に関するパターン Adapter 変換コネクタパターンです Bridge インターフェイスと実装の分離入れ替え自由自在 Composite 入れ子の入れ子の入れ子の入れ子の・・・ Decorator 知らずに着飾るオブジェクト Facade ユーザに優しいシステム操作人 Flyweight ゲーム製作でおなじみのオブジェクト使い回し法 Proxy オブジェクトへのア

  • 1