タグ

デザインパターンに関するmac10のブックマーク (5)

  • - Observer パターンとマルチスレッド

    (株)永和システムマネジメント 平鍋健児 作成日:初版 1999,6/26 第2版 1999,8/31 Last modified: Thu Nov 18 15:58:06 1999 最近注目されているソフトウェアパターンの中でも,デザインパターンは、GoFの書籍(*1)によって広く一般に認知されるようになりました.GoF のデザインパターンは,各パターンの構造および協調関係について詳しく書かれていますが,マルチスレッド環境の中での協調関係については記述がありません. この記事では,GoF のパターンから特に Observer パターン (Publisher-Subscriber パターン)を例にして,このパターンが マルチスレッド環境で使用される場合に起こる, プログラミング上の注意点を明らかにします. (*1) GoF は Gang of Four(4人組) の略で,1995 年の E

  • デザインパターンとしての例外ハンドラ - オブジェクト指向と型システムの狭間で例外を考える その4 - プログラマーの脳みそ

    例外考察シリーズ。 オブジェクト指向と型システムの狭間で例外を考える - プログラマーの脳みそ 契約書に捨印を押す - オブジェクト指向と型システムの狭間で例外を考える その2 - プログラマーの脳みそ try-catch方式・ハンドラ方式 - オブジェクト指向と型システムの狭間で例外を考える その3 - プログラマーの脳みそ 前回はプログラム言語の例外処理機構としてtry-catch方式の他に、ハンドラによる例外処理方式を考えることができる、という話をした。「考えることができる」がこの2010年現在にそういった例外処理機構をもった言語があるかというと僕は寡聞にして知らない。ああ、僕は当に寡聞なのでただの無知の可能性のほうが高い。メジャーどころではなさそうなんだけどどうだろう。 プログラム言語の機能として、という話だと、プログラム言語を作ろうという人とか、あるいは将来にハンドラ式の例外処

    デザインパターンとしての例外ハンドラ - オブジェクト指向と型システムの狭間で例外を考える その4 - プログラマーの脳みそ
  • Symfony Event Dispatcherで遊んでみた - hnwの日記

    Symfony Event Dispatcher とは Symfony Event DispatcherというのはPHPフレームワークであるsymfonyに含まれるライブラリで、GoF*1のObserverパターンの変種です。 このクラスは現在Symfony Event Dispatcherという名前で単体公開されていますので、symfony以外のプロジェクトでも気軽に利用できると思います。全部で300行程度の小さいライブラリで、テストコードが29件書かれています。 また、ガイドとAPIリファレンスが書かれています。レシピ集を見ればsymfonyでどう利用されているかを垣間見ることが出来ます。テストカバレッジ率100%なんてことも書いてありますね。 稿では、PHP5に対応したObserverパターンの実装としてのSymfony Event Dispatcherについて紹介します。 Obs

    Symfony Event Dispatcherで遊んでみた - hnwの日記
  • koshigoewiki:php:デザインパターン [KoshigoeWiki]

    koshigoewiki/php/デザインパターン.txt · 最終更新: 2005/12/04 17:15 by koshigoebushou

  • PHP4でデザインパターン(Facade編) - Do You PHP?

    PHP4でデザインパターン(Facade編) オブジェクト指向についてはまだまだ勉強中ですが、「PHPGoFのデザインパターンを実装したら、どんな感じになるんだろ?」と思ってしまったので、ちょっとずつやってみることにしました。 間違いやご意見がありましたら、遠慮なくツッコミを入れてくださいm(_"_)m 今回は、Facadeパターンで「APIをシンプルにする」パターンです(以下のクラス図を参照)。 今回のサンプルは、とあるユーザー一覧を出力するものでクライアントからの呼び出しが1行で済んでしまう、というものです。 以下がサンプルコードで、動作確認はPHP4.3.0です。 これだとあまり実感が湧かないですが、より多くのクラス・メソッドを使用して複雑な処理を行う場合、クライアント側にその複雑さを意識させたくない場合があります。Facadeパターンでは、シンプルなAPIを提供することで、複雑

  • 1