タグ

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

  • 関連タグはありません

タグの絞り込みを解除

gofに関するporiringooのブックマーク (21)

  • 22.Commandパターン

    2012/04/26 一部修正しました デザインパターン 22章 Commandパターン 22.1 Commandパターンとは 22.2 サンプルケース 22.3 Commandパターンまとめ 22.1 Commandパターンとは 第22章ではCommandパターンを学びます。あるオブジェクトに対して要求を送るということは、そのオブジェクトのメソッドを呼び出すことと同じです。 そして、メソッドにどのような引数を渡すか、ということによって要求の内容は表現されます。さまざまな要求を送ろうとすると、引数の数や種類を増やさなければなりませんが、 それには限界があります。そこで要求自体をオブジェクトにしてしまい、そのオブジェクトを引数に渡すようにします。それがCommandパターンです。 Commandパターンは、要求をCommandオブジェクトにして、それらを複数組み合わせて使えるようにするパター

  • 矢沢久雄の早わかりGoFデザインパターン(10)

    OOPの概念を説明する際によく使われる、有名な例え話がいくつかあります。「クラスはクッキー型であり、生地からくり抜かれたクッキーがオブジェクトである」「多態性とは、犬に鳴けと命じると”ワン”と応え、に鳴けと命じると”ニャア”と応えることである」「自動車と船と飛行機は、乗り物に汎化できる」などです。きっと皆さんも、似たような例え話を聞いたことがあるでしょう。 「例え話は、概念を十分に理解している人だけにわかるジョークのようなものだ。はじめて学ぶ人には、例え話を使わない方がいい」と言う人がいます。確かに、突拍子もない例え話をしたら、かえって理解の妨げになるでしょう。しかし、適切な例え話を交えた説明の方が、イメージが広がって聞きやすいのも事実です。例え話を使うべきか、それとも使わない方がいいのか...結論が出ないまま、CommandパターンとStrategyパターンの説明をさせていただきます。

    矢沢久雄の早わかりGoFデザインパターン(10)
  • 18.Memento パターン

    2012/04/26 一部修正しました デザインパターン 18章 Mementoパターン 18.1 Mementoパターンとは 18.2 サンプルケース 18.3 Mementoパターンまとめ 18.1 Memento パターンとは 第18章では Memento パターンを学びます。Memento とは、英語で「記念品」「形見」を意味する単語です。 記念品や形見を見ると、当時の状況が思い出されます。Memento パターンとは、 インスタンスのあるときの状態をスナップショットとして保存しておくことで、 その時のインスタンスの状態を復元することを可能にするものです。 インスタンスの状態が、プログラム実行中にどんどん変化することが考えられます。 一度変化してしまったインスタンスを、「少し前の状態に戻したい」「ある時点の状態に戻したい」などの要求は時に発生するものです。 このような要求にスマート

  • 6. Prototype パターン

    6.1 Prototype パターンとは 第6章では Prototype パターンを学びます。prototype という単語は、日語で「試作品」「原型」といった意味を持ちます。Prototype パターンは、あらかじめ用意しておいた「原型」からインスタンスを生成するようにするためのパターンです。 例えば、「直線を描く」機能しか持たない図形エディターを想像してみましょう。この図形エディターで星型を書きたいときには、直線を組み合わせることで、星の形を作成していくことになります。では、星型がいくつも欲しいときはどうすればよいでしょう?直線を組み合わせて星型を描くという作業を何度も繰り返す必要が出てきます。こんなとき、最初に作成した星型(直線の集まり)を「プロトタイプ」として登録しておき、これをコピーすることで星型が作成できれば、作業がとても楽になります。 Prototype パターンは、このよ

  • hellohiro.com

  • Factory Method - GoFデザインパターン〜STEP2:少し慣れたら - PHPによるデザインパターン入門 - Do You PHP?

    Factory Method~インスタンスを生成する工場 GoFにおける分類 生成+クラス はじめに ここでは、Factory Methodパターンについて説明します。 「factory」とはもちろん「工場」という意味です。パターン名に使われているほどですから、もちろんそれなりの理由があります。工場とは一般的に何かを製造する施設ですよね・・・ここまで言うと、カンのするどい人でしたらもう気づいているかもしれません。 では、なぜ「工場」という名前が使われているのか、これから説明していきます。 たとえば たとえば、作曲家と作品のデータがCSVファイルとして保存されており、これを表示する場合を考えてみましょう。 CSVファイルの1レコードには作曲家名とその作曲家の作品名が存在します。表示ルールとして、複数の作品を持つ作曲家の場合は初めに作曲家名を表示し、続けて作品名を表示するものとします。 ●

    poriringoo
    poriringoo 2010/05/11
    Factory Method
  • 彩神v

    poriringoo
    poriringoo 2010/04/22
    Observerパターン
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    poriringoo
    poriringoo 2010/04/21
    Observerパターン
  • デザインパターン (ソフトウェア) - Wikipedia

    ソフトウェア開発におけるデザインパターンまたは設計パターン(英: design pattern)とは、過去のソフトウェア設計者が発見し編み出した設計ノウハウを蓄積し、名前をつけ、再利用しやすいように特定の規約に従ってカタログ化したものである。パターン(pattern)とは、型紙(かたがみ)やひな形を意味する。 稿でのデザインは狭義の設計という意味であり、CSSHTMLなどで使われる意匠デザインの定形を示す「デザインパターン」とは異なる。 書籍『オブジェクト指向における再利用のためのデザインパターン』において、GoF (Gang of Four) と呼ばれる4人の共著者は、デザインパターンという用語を初めてソフトウェア開発に導入した。GoFは、エーリヒ・ガンマ、リチャード・ヘルム、ラルフ・ジョンソン、ジョン・ブリシディースの4人である。彼らは、その書籍の中で23種類のパターンを取り上げた

    poriringoo
    poriringoo 2010/04/21
    全パターン
  • Observer パターン - Wikipedia

    この記事には複数の問題があります。改善やノートページでの議論にご協力ください。 出典がまったく示されていないか不十分です。内容に関する文献や情報源が必要です。(2015年10月) 脚注による出典や参考文献の参照が不十分です。脚注を追加してください。(2021年8月) 出典検索?: "Observer パターン" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL この記事内にあるすべての画像は、ベクターイメージである SVG ファイルとして再作成されるべきです。これにはいくつかの利点があります。詳しくはWikipedia:SVGへの乗り換えを参照してください。この画像の SVG 形式がすでに利用可能である場合は、アップロードしてください。アップロード後、この画像にあるこのテンプレートを{{SVG版利用可能

    Observer パターン - Wikipedia
  • 事例で学ぶデザインパターン 第 5 回 | オブジェクトの広場

    事例で学ぶデザインパターン 第5回 Observer パターン ~表示と処理の分離とリアルタイム更新~ (株)オージス総研 福田 直樹 一般的に GUI 画面は、追加や変更の発生しやすい部分であり、その影響は最小限にしたいものです。GUI を表すクラスとデータ処理を行うクラス間は分離し、結合度を弱める必要があります。今回は、変更の影響や再利用性を意識した設計の枠組みと、更新されたデータをリアルタイムに通知するようなメカニズムを提供する Observer パターンを取り上げます。 ※雑誌『Java WORLD』 2006 年 8 月号に掲載した記事のオリジナル原稿を Java WORLD 編集部の了解を得て掲載しています。 前回のおさらいと今回のお題 前回は、Factory Method パターンを取り上げ、オブジェクトを生成するときの柔軟な方法について見ていきました。Factory Met

  • 矢沢久雄の早わかりGoFデザインパターン(6)

    プログラムの動作を分析する際には、大きく分けて2つの視点があると思います。1つは「処理が流れて行く」という見方です。これを図に表すと、フローチャートになります。もう1つは「状態が変化して行く」という見方です。これを図に表すと、状態遷移図になります。これら2つの視点は、プログラムに置き換える対象に応じて自然と使い分けられるものです。 プログラムの状態と聞くと、ピンと来ないかもしれませんね。早い話が、データの値が様々に変化することです。オブジェクト指向プログラミングでは、フィールドの値がオブジェクトの状態です。オブジェクトは、現在の自分の状態に応じた振る舞いをします。場合によっては、状態が変化したことを、他のオブジェクトに通知することもあります。その際に、何か工夫をしたくてウズウズしてきませんか。 【お役立ち度】★★★★☆ ●if文を使わずに、状態に応じた処理を行えるStateパターン 3つの

    矢沢久雄の早わかりGoFデザインパターン(6)
    poriringoo
    poriringoo 2010/04/21
    Stateパターン/Observerパターン
  • 17.Observer パターン

    2012/04/26 一部修正しました デザインパターン 17章 Observerパターン 17.1 Observerパターンとは 17.2 サンプルケース 17.3 Observerパターンまとめ 17.1 Observer パターンとは 第17章では Observer パターンを学びます。Observer とは、英語で「観察者」を意味する単語です。Observer パターンとは、状態の変化を観察することを目的としたものですが、どちらかというと「観察」よりも「通知」に重点の置かれたものになっています。 あるインスタンスの状態が変化した際に、そのインスタンス自身が、「観察者」に状態の変化を「通知」する仕組みです。例えば、飛行機の搭乗券について考えて見ましょう。飛行機の搭乗券を購入した人がキャンセルする必要に駆られた場合、航空会社に連絡してキャンセルする旨を伝えます。各搭乗者を管理しているの

  • syboos.jp

  • Facade パターン - Wikipedia

    Facade パターンあるいは Façade パターン(ファサード・パターン)とは、GoF(Gang of Four; 4人のギャングたち)によって定義された、コンピュータソフトウェアのデザインパターンの1つである。Facade(ファサード)とは「建物の正面」を意味する。異なるサブシステムを単純な操作だけを持ったFacadeクラスで結び、サブシステム間の独立性を高める事を目的とする。 Facadeパターンの例として、サブシステムとしてのコンパイラーを考える。システムとしてのコンパイラーは字句解析器や構文解析器などから構成されている。これらの構成要素は、新たなコンパイラーやその他ソフトウェアを作成する上でサブシステムとして利用することが出来る。しかし、一般ユーザーにとってコンパイラーはソースコードからプログラムを生成するためのものであり、ソースコードをコンパイルできる機能があれば十分である。

    Facade パターン - Wikipedia
  • 15.Facadeパターン

    15.1 Facadeパターンとは 第15章ではFacadeパターンを学びます。プログラムを作っていくと、最初は小さなものでも、だんだん大きくなっていきます。 たくさんのクラスが出来て、相互に関係しあい、複雑になっていきます。 クラスを使う場合には、それらの関係を正しく理解して、 正しい順番にメソッドを呼び出す必要があります。 大きなプログラムを使って処理を行う場合、 関係しあっているたくさんのクラスを適切に制御しなくてはいけません。 その処理を行うための「窓口」を用意しておくと、 個別にたくさんのクラスを制御しなくても、「窓口」に対して、要求するだけですみます。 Facadeパターンは、既存のクラスを複数組み合わせて使う手順を、「窓口」となるクラスを作ってシンプルに利用できるようにするパターンです。 ちなみに、facadeとはフランス語を語源とする単語で「建物の正面」という意味です。発音

  • 矢沢久雄の早わかりGoFデザインパターン(9)

    プログラミングテクニックの中には、「かっこいい!」と感動しちゃうものがありますね。たとえば、再帰、インターフェイス、メッセージフックなどです。再帰は、メソッドの処理の中で同じメソッドを呼び出すテクニックです。繰り返し処理をスマートに記述できます。インターフェイスは、複数のクラスに同じ構文のメソッドを強制的に実装させるテクニックです。多態性(異なるオブジェクトを同じ方法で使うこと)を実現できます。メッセージフックは、メソッドの呼び出しを横取りするテクニックです。既存のクラスのメソッドに任意の処理を挿入できます。今回紹介する2つのパターンは、これらのテクニックを応用しています。 【お役立ち度】★★★★★ ●再帰とインターフェイスを応用したCompositeパターン 奇抜な例で恐縮ですが、町内会の連絡網を思い浮かべてください。Aさん~Dさんの4件の家庭があって、順番にお知らせを伝えるとします。こ

    矢沢久雄の早わかりGoFデザインパターン(9)
  • 11. Composite パターン

    2012/04/26 一部修正しました デザインパターン 11章 Composite パターン 11.1 Composite パターンとは 11.2 サンプルケース 11.3 Composite パターンまとめ 11.1 Composite パターンとは 第11章では、Composite パターンを学びます。Composite とは、英語で「複合物」を意味する言葉です。 Composite パターンは、「容器と中身を同一視する」ことで、再帰的な構造の取り扱いを容易にするものです。 「容器と中身を同一視する」必要が生じる例として、ファイルシステムなどが挙げられます。 あるフォルダ以下のファイルやフォルダをすべて削除したい場合など、それがファイルなのかフォルダなのかを意識せずに、同じように削除できたほうが都合が良いでしょう。 11.2 サンプルケース サンプルケースでは、ディレクトリとファイル

  • PHP5でデザインパターン − Decoratorパターン - Lism.in * blog - nekoya (id:studio-m)

    前回のStrategyに続いて、Decoratorパターンです。では第二章はObserverですが、ちょっとスルー。 今回の構成は、ラーメンと、それに対するトッピングとなっています。 まずは、ラーメンの抽象クラスとそれを実装するサブクラス(しょうゆラーメンクラスと塩ラーメンクラス)。 Ramen.php <?php /** * Decoratorパターンによるラーメン */ /** * Ramen */ abstract class Ramen { protected $description; protected $price; public function getDescription() { return $this->description; } public function cost() { return $this->price; } } /** * SoySauceRa

  • 矢沢久雄の早わかりGoFデザインパターン(8) | 日経 xTECH(クロステック)

    23種類のGoFデザインパターンには、それぞれ親しみやすい名前が付けられています。今回紹介する2つのパターンの名前を直訳すると、「橋(Bridge)」および「装飾者(Decorator)」となります。どちらも構造に関するパターンに分類されているので、構造として橋を架けたような工夫、そして構造に飾りを付ける工夫であることが予測できます。オブジェクト指向プログラミングにおける橋と飾りとは、いったい何なんだろう...興味が湧いてきたところで題に入りましょう。 【お役立ち度】★★★★★ ●拡張から実装に橋を架けるBridgeパターン 継承元のクラスをスーパークラスと呼び、継承先のクラスをサブクラスと呼びます。サブクラスの役割には、スーパークラスの抽象メソッドを適切に実装することと、スーパークラスの機能を拡張することがあります。 ここで、引数に与えられたデータを描画するdrawメソッド(抽象メソッ

    矢沢久雄の早わかりGoFデザインパターン(8) | 日経 xTECH(クロステック)