私がこういうの大嫌いなのは一部では有名な話ですが、職場では寛容に、ネット上では偏屈に、がポリシーなので素直に流しました。
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
JavaScriptはプロトタイプOO言語ということで、インスタンスコピーによる継承とカスタマイズを用いるのが素直な方法なのだと思う。JavaScriptでは、単純にインスタンスを丸々コピーする方法では効率が悪いということで、 prototype による非対称スコープチェーンを用いる方法と、prototypeへのプロパティのコピーを用いる方法がよく用いられている。 しかしながら、サイトによって良い悪いがばらばらで、結局これらの方法のどれを使うのが良いのかよく分からなかったので、どういう違いがあるのか調べてみた。 prototypeスコープチェーンを操作 参考文書: http://faces.bascule.co.jp/inheritance.html プログラマのためのJavaScript (11):継承についてもう少し - 檜山正幸のキマイラ飼育記 (はてなBlog) [鏡] C/C++
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でオブジェク
個人的な話をしますと、オブジェクト指向の入門書に出てくる、「クルマのたとえ話」とかは本当に意味わかりませんでした。こちとら、すっかり手続き脳なもので、そんなんでmainとかどうやって書くのよ?みたいな。<我ながらヒドイ http://d.hatena.ne.jp/LazyCoder/20070806/1186417299 追記 PHPのオブジェクト指向を勉強してる。というか仕事での必要性を感じてやってるけど、正直オブジェクト指向の良さがさっぱりわからん。(中略) よくあるオブジェクト指向の解説本には車がオブジェクトでタイヤがファンクションでみたいなんかいてるけど、実務で使うプログラムの設計の仕方がわからん。 http://anond.hatelabo.jp/20070427093912 こんな説明を読んで、なんだかわかったような気分になれる人は、どっちかというと思考力に欠ける人なんじゃない
オブジェクト指向やモデリングの本でこのような文章をみたことがないだろうか。 クラスを抽出するためには、ユースケースから名詞、動詞を まず抽出します。名詞はクラス・属性の候補になり、 動詞は操作や関連の候補になります。書いてあることは間違ってないように見えるが、しかし現実的ではない。 なぜならユースケースだけでは情報が足りないからだ。 試しに適当なユースケースを使って上記のようなクラス抽出を試みて欲しい。 1つのユースケースだけだと情報が足りないのは当たり前だが、 すべてのユースケースで試みても情報が足りないのはすぐに感じてもらえると思う。 その対策として、これまでの私は、ユースケース記述にインプット・アウトプットの 補足仕様書をつけてそこに足りない情報を記述するようにしていた。 しかし、良く考えてみるとこれも、ユースケースが情報を分析するための 道具としては中途半端なのが原因だと思う。 や
今回は継承についてより深く学びます。特になぜ多重継承が必要なのか,多重継承にはどのような問題があり,JavaやRubyがどのように解決しているのかを学びます。 前回はオブジェクト指向プログラミングを構成する3原則(ポリモーフィズム,データ抽象,継承)のうち,継承について扱いました。人が一度に把握,記憶できる概念の数には限りがあること,これを解決するため,クラスのうち似たような部分をくくり出す仕組み(継承)が必要であることを解説しました。継承はプログラムの構造化,抽象化の流れが自然に進化した形として登場したとも説明しました。 しかし,最後の部分は厳密には正しくありません。構造化,抽象化とは,共通部分をスーパークラス(親クラス)としてくくり出すボトムアップ・アプローチを意味します。このように継承が誕生したのであれば,最初から複数のスーパークラスを持つことができる多重継承*1が主流だったに違いな
続・PHPの基本::PHP5の基本 PHP4からPHP5になって、クラス・オブジェクト関係の仕様が大きく変更・機能強化され、また「例外処理」その他の機能が追加されました。 このページは「PHPの基本(PHP4対応のPHP基本講座)」のページの続編(PHP5の基本編)です。このページでは、PHP5で変更・追加された各種機能について解説しています。 目次 オブジェクトの代入 【clone()命令】 メンバのアクセス制限 【public、protected、private】 スタティックメンバ/クラス定数 【::演算子、static、self、parent、const】 コンストラクタとデストラクタ 【__construct()、__destruct()】 特殊メソッド/オートロード 【__*()メソッド、__autoload()関数】 オブジェクト引数のクラス指定 例外処理 【try、thro
前回「ソフトウェアは知識の結晶」はソクラテス式対話編その2として「知識」とは何かについて考えてみました。 知識は学習と実践を繰り返して体で覚えるものである 知識は仕事の原動力である。仕事とは顧客に価値を生み出すことである。ゆえに知識とは価値を生み出す原動力である 知識は凝集させて結晶化させる人と結晶を解放して利用する人がいる。この結晶は利用者にとっての価値である この光り輝く結晶こそが(広義の)ソフトウェアであり、それは直接には目に見えないし手で触れない。しかし確かに存在するものである。存在を感知できる人にとっての価値である 今回はUML2仕様書を題材にして「メタモデル」を読みながら、あらためて「知識とは何か?」について考えてみたいと思います。 [登場人物] ソクラテス ソクラテスの弟子筋の某 司会 司会 UMLは知識を表現するための1つの道具です。UMLで表現されたモデルは知識の結晶です
モデラーはいつも抽象的な現実しか語らない。 概念なんだからしょーがねーだろ っと言われるかもしれないが、 実際問題使う人たちが理解に苦しむのであれば 提供側はもちっと考えるべきである。 ユーザを苦しめるのがベンダの仕事か?ってことにYesYesYesと答えるのは ユーザをないがしろにしている事実にほかならない。 ポリモルフィズムを語る際に、必ずコードが単純になるよってことしか言わない。 再利用性が高まることを示すにはサンプルコードはあまりにも少ないのだ。 理解を促すために必要なのは前提と結論と過程の3つであり、 巷にあふれる説明には過程がカケラしかない。 ふっとぐぐったらこんなんみつかったのだが、中身はひでぇもんだ。*1 コードに落とし込む時、メソッドの役割は2種類必要になる。 ・実処理 ・実処理を呼び出すだけの処理 *1:世で見る普遍的な言葉という意味では「平均的」なのだが、 世の中の平
ふつうのオブジェクトは、どこで生成して、どこで保持して、…ということを、きちんと考えないといけない。いろいろな箇所で使う場合は、関数やクラスの間で、オブジェクトを受け渡してあげないといけない。 ところが、Singletonは、そのようなことをまったく考えずに、アプリケーションのどこでも自由に使える。 これは、よく考えてみると、次のようなコードと同じである。 つまり、グローバル変数の代用として、Singletonパターンを使ってしまっているケースがある。 変数をグローバルに宣言してしまえば、どこからでも参照できるので、手軽である。そのため、プログラミングの初心者には、グローバル変数を多用したがる人もいる。 グローバル変数を多用するのが誤った考えであることは、大抵の人は理解している。にも関わらず、グローバル変数の代用として、Singletonパターンを使っているケースが、少なくない。 この背景
ホーム < ゲームつくろー! デザインパターン習得編 コンセプト デザインパターン事始め 生成に関するパターン Abstract Factory 一塊のオブジェクト群を沢山の種類用意する Builder 同じ生成過程で完成する色々なオブジェクト Factrory Method 子オブジェクトを親クラスの関数で作る Prototype 原型を用意して、後はコピーコピーコピー Singleton 存在するオブジェクトは1つだけ 構造に関するパターン Adapter 変換コネクタパターンです Bridge インターフェイスと実装の分離入れ替え自由自在 Composite 入れ子の入れ子の入れ子の入れ子の・・・ Decorator 知らずに着飾るオブジェクト Facade ユーザに優しいシステム操作人 Flyweight ゲーム製作でおなじみのオブジェクト使い回し法 Proxy オブジェクトへのア
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く