タグ

oopに関するoto-oto-otoのブックマーク (35)

  • オブラブ クリスマスイベント- 公開資料

    Skip to content. Small Text Normal Text Large Text Search Powered by Eiwa System Management, Inc. 個人情報の取扱について Sections ホーム 技術文書 コミュニティ スペシャル ダウンロード イベント Personal tools You are not logged in You are here: Home » イベント » 第7弾2006Xmas » 公開資料 Navigation 技術文書 コミュニティ スペシャル ダウンロード イベント 第17弾2011夏 第16弾2010夏 第15弾アレクザンダー祭り 第14弾2009冬 第13弾2009夏 第12弾2009冬合宿 第11弾2008忘年会 第10弾2008夏 2008春イベント 第9弾2007Xmas 2007秋イベント 第8

  • 要求開発にオブジェクト指向が本当に使えるのか?(1)

    要求開発では,多くのUMLのダイアグラムが使われており,オブジェクト指向ベースのクラス図なども出てきます。技術者/開発者として,おそらく最初に思う疑問は「オブジェクト指向とかUMLとか,こんな難しそうなものをユーザーが果たして理解できるのか? 現場で使えるのか? 得ができるのか?」といったことだと思います。 私も要求開発の可能性に気づいて,要求開発に取り組み始めたのですが,取り組みながらもぬぐい去れない疑問が,上記の内容でした。 この問題を整理していきたいと思います。ITをビジネスで活用するシーンを想像してみましょう。要求開発アライアンスでは,システム開発を大きく二つのフェーズに分けています。一つは,存在する要求やRFP(Request For Proposal)にしたがってシステム作る「システム開発」フェーズ。もう一つは,戦略からシステム化する要求を作り出す「要求開発」フェーズです(図1

    要求開発にオブジェクト指向が本当に使えるのか?(1)
  • あるオブジェクト指向開発の物語:ITpro

    Part1 プロジェクト開始前夜 「的場くん,弁当チェーンのA社は知ってるだろう? 明日のヒアリングに同席してくれないか」――ある昼下がりの午後。平田マネージャが的場さんの席まで来て声をかけました。 的場さんは,都内の中堅ソフトハウスに勤めるソフトウエア・エンジニアです。Javaを中心とするWebアプリケーションの開発では,ここ数年,様々な経験を積んでいます。ちょうど前のプロジェクトの切れ目だったこともあり,的場さんは平田マネージャの話に耳を傾けました。 「実は,A社の野崎システム部長から,新システム構築にあたって最近の技術動向,特にオブジェクト指向開発について話を聞かせてほしいと言われているんだ」 「はあ」 「で,だったら,わが社の開発のエースをお連れしますよ,ということで君に白羽の矢が立ったわけだよ」 それを聞いて,的場さんの胸に不安が去来しました。平田マネージャは現場を離れて10年以

    あるオブジェクト指向開発の物語:ITpro
  • 根本から理解するオブジェクト指向分析/設計

    具体論に入る前に,まずオブジェクト指向分析/設計とは何を意味するのかを定義しておきましょう*1。 そもそも「分析」とはどういったことを指すのでしょうか。辞書を引いてみると,“ある事柄の内容・性質などを明らかにするため,細かな要素に分けていくこと”とあります。オブジェクト指向分析を適用する場面で明らかにしたい事柄とは,どのようなシステムを作らなければならないのかということです。つまり,オブジェクト指向分析とは,“どのようなシステムを作らなければならないのかを,オブジェクトという要素を使って解明すること”ということになります。これに対しオブジェクト指向設計とは,“分析によって明らかにしたシステムの実現手段を,オブジェクトという単位を使って明確にすること”となります。 両者の違いがイメージできたでしょうか。では以降は,具体的なサンプルに基づいてオブジェクト指向分析/設計の仕方を見ていきましょう。

    根本から理解するオブジェクト指向分析/設計
  • ハタさんのブログ : デザパタ本には載らないデザパタ

    突然ですが、きっとあなたも使っているデザインパターンシリーズ 何気なく書いていたあのクラスが無意識的にNullObjectパターンやHook Operationパターンを適用していることがここ最近多い気がしませんか? 僕の場合はS2Daoを通して見付けた(身に着けた)ものが多いんですが、今回はそのS2Daoより、簡単に書けるHook OperationパターンとNullObjectパターンをPHP5で書いてみます。 Hook Operationパターン 「Hook Operationパターン」にも書かれていますが、あるクラスの処理の前と後ろに、別の処理を実行したいことがあります。 AOPとか特別なことはせずに、あるクラスの前処理と後処理を呼び出します。 あるクラスの処理を「Process」クラスの「execute」処理とし、別の処理(前・後)は「Hook」インタフェースを実装するクラス

  • perl - 勝手に添削 - 条件分岐 : 404 Blog Not Found

    2006年12月05日05:30 カテゴリLightweight Languages perl - 勝手に添削 - 条件分岐 というわけで、ひさかたぶりの勝手に添削のコーナーは、こちら。 CodeZine:Perlで作るモバイルサイトのコツ:第5回 (モバイル, XHTML, Perl) 多少長い判別となってしまいましたので用途に合わせて関数化してもよいでしょう。 さらにすっきりとロジックを書き出す方法がいくつもあります。 use HTTP::MobileAgent; my $agent = HTTP::MobileAgent->new; if ($agent->is_docomo){ if ($agent->is_foma){ # XHTML対応 } } elsif ($agent->is_ezweb){ if ($agent->is_win){ # XHTML対応 } } elsif

    perl - 勝手に添削 - 条件分岐 : 404 Blog Not Found
  • Re: 残念ながら、Smalltalkerのようなイメージでプログラムを見ることができない… - Smalltalkのtは小文字です

    矢沢久雄のソフトウエア芸人の部屋 : 【第3回】 このごろオブジェクト指向セミナーの人気が高まっています より。 正直、あまり残念がる必要はないと思います。ケイのオブジェクト指向とストラウストラップのオブジェクト指向は、同じ「オブジェクト指向」を称してはいるものの、その視点や立ち位置はぜんぜん違うものですから…。むしろ合点がいったらコワイくらいです。w 現在主流の後者のオブジェクト指向の立場(カプセル化、すなわち“データ型”の設計を重視…)の考え方では「プログラムは、処理とデータからできている」で十分で、処理の動的な呼び出しをメッセージングと解釈するかどうかはその人の好み次第…というより、来は無用のものです。むしろメッセージングなどというものは徹底的に排除して考える習慣をつけたほうが、ずっとその質(抽象データ型とは何で、それをクラスで実装するメリットは何か…)にたどり着きやすいと思いま

    Re: 残念ながら、Smalltalkerのようなイメージでプログラムを見ることができない… - Smalltalkのtは小文字です
  • よくわかるソフトウエア・パターン - 特集 オブジェクト指向は難しくない!:selfup

    Part3では,もはやオブジェクト指向開発では欠かせない存在となったソフトウエア・パターンについて解説しましょう。デザインパターンに代表される様々なソフトウエア・パターンを活用して,熟練者の経験を盗み,オブジェクト指向開発を円滑に進める術を習得してください。 ソフトウエア・パターンの全貌 皆さんは誰かが書いたプログラムを眺めていて,どこかで見たようなソフトウエア設計やコードに出くわしたことがありませんか? 「このクラスの役割はどこかで見たことあるなあ」とか「このコードは何度も自分で書いたことがあるぞ」といった感覚です。そのような既視感は,そのコードを書いた人が,皆さんと似たような状況で,繰り返し発生する問題を抱えて,似たような設計/実装を行ったからかもしれません。 ソフトウエア・パターン*1は,このような繰り返されるソフトウエア設計を集めたものです。それも単に集めたのではなく,様々なソフト

    よくわかるソフトウエア・パターン - 特集 オブジェクト指向は難しくない!:selfup
  • 講師ヤザワのセミナー日記[3] このごろオブジェクト指向セミナーの人気が高まっています

    最近になって、オブジェクト指向に関するセミナーの依頼をよく受けるようになりました。 部課長クラスを対象に、オブジェクト指向の全容を理解させてほしい(2時間コース) 中堅エンジニアを対象に、UMLを使った分析・設計技法を指導してほしい(2日間コース) 新人プログラマを対象に、オブジェクト指向らしいプログラミングスタイルを教えてほしい(5日間コース) など、対象者と内容は様々です。オブジェクト指向は、1970年代からある技法です。決して新しいわけではありません。それなのに、なぜ今になってオブジェクト指向が流行りだしたのでしょう? この疑問に対する答えも含め、2時間コースのセミナーの概要を、Web上で再現させていただきます。 最初に、皆さんに質問します。オブジェクト指向とは、何でしょう?...「プログラムの部品化のことだ」「効率的にプログラムを作れる技法だ」「コストを削減できる技法だ」「大規模シ

    講師ヤザワのセミナー日記[3] このごろオブジェクト指向セミナーの人気が高まっています
  • 数理科学的バグ撲滅方法論のすすめ 第4回 関数型言語とオブジェクト指向,およびOCamlの"O"について

    関数型言語とオブジェクト指向は相容れない,という説をよく聞く。たしかに「オブジェクトは状態を持つ」「関数型プログラミングでは,できるだけ破壊的代入を行わない」とすれば,二つの概念は矛盾しているようにも思われる。また,技術的観点以外にも,「とかくシンプルさを好む多くの関数型言語プログラマが,何かと物事を複雑にする(と思われている)オブジェクト指向を嫌っている」という面があるかもしれない。 しかし,個人の好き嫌いはさておき,実際問題として,関数型言語とオブジェクト指向は大いに関係がある。むしろ,基礎理論については,ほとんど同じコミュニティの人たちが取り組んでいる,と言ってもいい。例えば,以下のような研究が,1980年代から現在に至るまで行われている。 関数型言語のモデルであるλ計算という体系において,オブジェクトを表現する研究(参考リンクなど) λ計算にならい,(プロトタイプベースの)オブジェ

    数理科学的バグ撲滅方法論のすすめ 第4回 関数型言語とオブジェクト指向,およびOCamlの"O"について
  • Part2 JavaScript流オブジェクト指向プログラミング

    JavaScriptは,きちんとしたオブジェクト指向言語であって,オブジェクトを利用した高度な開発が可能です。JavaC++,.NET系のオブジェクト指向言語がオブジェクトの定義にクラスという概念を用いる「クラス・ベース」の考え方を採用しているのに対し,JavaScriptではひな型となるオブジェクトを元に独自の機能を付加するという「プロトタイプ・ベース」の考え方を採用している点が特徴です。 まず最初に,皆さんの誤解を解いておきましょう。それはJavaScriptは,きちんとしたオブジェクト指向言語だということです。オブジェクト指向言語と言えば,JavaC++などが有名ですし,C#やVisual Basic 2005といった米Microsoftが開発した.NET系の言語もあります。しかしこれらの言語に比べてJavaScriptは,一段低い「Webブラウザで利用する簡易言語」といったイメ

    Part2 JavaScript流オブジェクト指向プログラミング
  • 関数、オブジェクト、クロージャ - FAX

    (thanks to id:koyachi、del.icio.us/rtk2106) OOPとFPと。関数、オブジェクト、クロージャの使い分けについて考えます。 関数型が良いのか、オブジェクト指向が良いのか、知りたいと思っていました。色々なページを読み、現時点で一応の答えを得ました。 カウンタを例にして、関数、スコープ、オブジェクト、クロージャの順に見て行きます。関数関数は処理です。入力と出力があります。関数型プログラミングでは、関数同士の入力と出力を連結しプログラムが構成されます。 var current = 0; function next(v){ return v + 1 } function previous(v){ return v - 1 } ok( 1 == ( current = next(current) ) ); ok( 2 == ( current = next(cu

  • 404 Blog Not Found:オブジェクトは難しくない。難しいのはクラス

    2006年11月16日16:55 カテゴリLightweight Languages オブジェクトは難しくない。難しいのはクラス 大人だからオブジェクトは難しくなる。子供にとっては実はオブジェクトは自然で自明で簡単だ。 オブジェクト指向を正しく理解する:ITpro オブジェクト指向はしばしば,とっつきづらく難しい技術と言われます。その理由の一つには,対象とする分野が広く,それぞれに深みがあることが挙げられます。しかし,それ以上にこの技術を難しくしている落とし穴とも言うべき原因が二つあると筆者は考えています。それは比喩を乱用する説明の仕方の問題と,「もの中心」を意味するコンセプト自体の問題です。事実、オブジェクト指向というのは最初は子供向けだったのだ。 このことを、現在「オブジェクトとはなんぞや」という大人たちは忘れてしまっている。 それで、オブジェクトとは何か、といえば、「自分が何が出来る

    404 Blog Not Found:オブジェクトは難しくない。難しいのはクラス
  • オブジェクト指向を正しく理解する - 特集 オブジェクト指向は難しくない!:selfup

    オブジェクト指向はしばしば,とっつきづらく難しい技術と言われます。その理由の一つには,対象とする分野が広く,それぞれに深みがあることが挙げられます。しかし,それ以上にこの技術を難しくしている落とし穴とも言うべき原因が二つあると筆者は考えています。それは比喩を乱用する説明の仕方の問題と,「もの中心」を意味するコンセプト自体の問題です。 そこで特集では,「オブジェクト指向という言葉をよく聞くけど,実際どんなものかよくわからない」という方のために,初心者/入門者が陥りやすい落とし穴を明確にしながら,オブジェクト指向の全体像を説明します。余計な先入観やまぎらわしいたとえ話に惑わされなければ,オブジェクト指向そのものはそれほど難しい技術ではないことを理解していただきたいと思います。なお,オブジェクト指向プログラミング,デザインパターン,分析/設計といった個々の技術については特集2以降でそれぞれ解説

    オブジェクト指向を正しく理解する - 特集 オブジェクト指向は難しくない!:selfup
  • メモリー効率は所詮実装次第 : 404 Blog Not Found

    2006年10月20日10:55 カテゴリLightweight Languages メモリー効率は所詮実装次第 そう。まさにこれを言いたかった訳です。 Kazuho@Cybozu Labs: re: javascript vs perl - オブジェクトのメモリー効率 言語仕様のメモリ効率性を考えるのにあたって、(メモリの潤沢な環境向けの) 特定の実装間の比較をしても意味がないと思います。実はこの場合でも(2)だけではなく(2)-(1)の結果を見ると、私の手元では defval js 3348 pl 2680 [FreeBSD] とperlの方がよいという結果が出ちゃいましたが、それはさておき、この場合でもPerlは以下の工夫を施すことによりさらにメモリー効率を上げることができます。 defval.pl2 #! /usr/bin/perl use strict; use warnings

    メモリー効率は所詮実装次第 : 404 Blog Not Found
  • Kazuho@Cybozu Labs: JavaScript は、なぜプロトタイプベースなのか

    « JavaScript を学ぶ上で読むべきウェブサイト | メイン | re: javascript vs perl - オブジェクトのメモリー効率 » 2006年10月19日 JavaScript は、なぜプロトタイプベースなのか 決して専門ではないので、以下、間違っていたら指摘してください。 JavaScript がプロトタイプベースであることに対する一番妥当な説明は、クラスベースのオブジェクト指向言語よりもプロトタイプベースの言語のほうが、ランタイムの構造が単純になり、かつ、メモリ使用量が小さくなるからでしょう。 クラスベース OO のランタイムを作成しようと思うと、以下の各機能が必要になります。 1) クラス毎: メンバ関数を納めるハッシュテーブルと、親クラスを指すポインタ 2) インスタンス毎: プロパティを格納するハッシュテーブルと、クラスへのポインタ また、インスタンスの生

  • javascript - Prototypal Object Modelの落とし穴 : 404 Blog Not Found

    2006年10月19日11:30 カテゴリLightweight Languages javascript - Prototypal Object Modelの落とし穴 「404 Blog Not Found:javascript - プロトタイプ的継承」とその続編「404 Blog Not Found:javascript - プロトタイプ的継承完全版」は、案の定反応すべきbloggersが然るべき反応をしてくれた。これをbloggingの魅力と言わずしてなんと呼ぼうか。 プリミティブ値でもプロトタイプ的継承: Days on the Moon 書き上げた後に元記事の続きが出ているのに気づいたが、方向性が違うようなのでそのまま掲載。 IT戦記 - 関数一発でプロトタイプチェーンに繋げて、オブジェクトをクローンする。でも、実際はあそこまで複雑に書かなくても、できると思います ^^; 感想は

    javascript - Prototypal Object Modelの落とし穴 : 404 Blog Not Found
  • 関数一発でプロトタイプチェーンに繋げて、オブジェクトをクローンする。 - IT戦記

    最近、プロトタイプ的継承の話しが盛り上がっています。 http://blog.livedoor.jp/dankogai/archives/50662064.html http://labs.cybozu.co.jp/blog/kazuho/archives/2006/10/javascript_string.php http://blog.livedoor.jp/dankogai/archives/50662606.html 最終形がやたら複雑になっています でも、実際はあそこまで複雑に書かなくても、できると思います ^^; そう思う理由 P 関数は object 関数の中でローカルのものである。コンストラクタとして使える必要はない。なので、 Atomic な場合でも P は function(){} でいい。 method 関数では P.prototype のプロパティに関数が代入されて

    関数一発でプロトタイプチェーンに繋げて、オブジェクトをクローンする。 - IT戦記
  • Collection & Copy - JavaScriptにおける古典的継承

    翻訳 原文:Classical Inheritance in JavaScript著者:Douglas Crockford ※原文のコード内に誤りがあり、このまま記述しても動作しません。著者のコメント及び補足情報は翻訳メモを参照下さい。 君は自分が利口で階級にも属さず 自由だなんて思い込んでる―John LennonJavaScriptは、クラスという概念に囚われていない言語です。JavaScriptでは、古典的な継承の代わりにプロタイプ的な継承を使用します。これはC++Javaのような旧来のオブジェクト指向言語に長けたプログラマを当惑させるかもしれません。JavaScriptのプロトタイプ的継承が、古典的継承に比べていかに表現力が優れているかを、これから見ていきましょう。 JavaJavaScript強い型付け弱い型付け静的動的古典的プロトタイプ的クラス関数コンストラクタ関数メソッド関

  • javascript - プロトタイプ的継承完全版 : 404 Blog Not Found

    2006年10月18日21:00 カテゴリLightweight Languages javascript - プロトタイプ的継承完全版 Kazuho@Cybozuさま、いつもありがとうございます。 Kazuho@Cybozu Labs: JavaScript の String 型を継承する 結論から言うと、String 型も継承っぽいことができます。こんな感じ。 おかげでプロトタイプ的継承モデルの完全版が出来ました。 AtomicなObjectを継承 これは、以下のように包括的に出来ます。 var Atomic = function(C){ var P = function(v){ this._v = v; }; P.prototype = new C; P.prototype.valueOf = function(){ return this._v.valueOf(); } P.pro

    javascript - プロトタイプ的継承完全版 : 404 Blog Not Found