タグ

デザインパターンとオブジェクト指向に関するsugimoriのブックマーク (4)

  • GRASPパターン - Strategic Choice

    GRASPについてGeneral(汎用)Responsibility(責任)Assignment(割り当て)Software(ソフトウェア)Patterns(パターン)オブジェクト指向設計の基とは、適切なクラスに適切な責任を割り当てることであるここでいう責任とは、クラスが何らかの処理を実行する責任(実行責任)と、クラスが持つ情報を把握する責任(情報把握責任)のことである。そして、この責任割り当ての指針がGRASPである。責任駆動開発設計responsibility-driven design : RDD「責任」「役割」「強調」の観点から設計を行う。GRASPはRDD一部であり、その手段である。一覧責任を割り当てる際の指針 生成者情報エキスパートコントローラ保守性・拡張性・再利用性を高めるための指針 疎結合性高凝集性クラスを洗練する時に使用 多相性人工品間接化バリエーション防護壁参考実践U

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

    今回は、パターンを1つだけ紹介します。「Mediatorパターン」です。GoFでは、それぞれのパターンの「目的]「背景」「効果」などが明示されています。私も、ちょっと真似をしてみましょう。複数のオブジェクトを組み合わせてプログラムの機能を実現するという目的において、オブジェクト間の関連がゴチャゴチャになってしまうという背景(問題)があり、Mediatorパターンの採用によって関連をキレイに整理できるという効果があります。説明だけでは、何のことだかわからないと思いますので、具体例をお見せしましょう。 図1[拡大表示](1)をご覧ください。これは、UML(Unified Modeling Language、ユーエムエル)と呼ばれる表記法で記述されたプログラムの設計図です。UMLでは、四角形の中に下線付きで名前を書いてオブジェクトを表し、関連のあるオブジェクトを矢印で結んで示します。ここで関連

    矢沢久雄の早わかりGoFデザインパターン(1) | 日経 xTECH(クロステック)
  • ぼくにもわかるデザインパターン 第2章 GoFパターン大カタログ ~パターンがみるみる頭にしみこむ~ | ウルシステムズ株式会社

    GoFパターンカタログ章では,GoFに紹介されている23パターン(表1)すべてをカタログにして紹介します。クラス図と適用例に示したJDKのソースなどを参考にして,GoFのデザインパターンの基概念を確認していきましょう。それでは,次からさっそく始まりです。 Abstract Factory:ハイグレード車用部品とローグレード車用部品を作る下請け工場たとえば自動車メーカTOYATAは,人気車種カラーラを生産しています。カラーラには2 000ccエンジン,皮シート使用のハイグレード仕様と,1 800ccエンジン,布シートのローグレード仕様の2車種あります。いずれの部品も,製造はすべて下請けの勝どき機械に任せており,TOYATAは勝どき機械が作った部品を組み立てて製品にし,販売しています。勝どき機械には,TOYATAから「ローグレード車種何台分の部品」のように発注がくるため,管理のしやすさ

    ぼくにもわかるデザインパターン 第2章 GoFパターン大カタログ ~パターンがみるみる頭にしみこむ~ | ウルシステムズ株式会社
  • ジェネリクスによるVisitorパターン拡張の考察 - プログラマーの脳みそ

    先日twitterで "Expression Problem" という問題を知った。 静的な型付けの下で、場合分けのデータ構造に対して、新しい場合分けとその場合に対する新しい処理を、元のソースコードに手を加えることなく拡張定義すること 2009-05-16 この問題が意図するところを語るにはまずオブジェクト指向から流れを辿らねばなるまい。 オブジェクト指向のポリモーフィズム Javaのようなオブジェクト指向の言語で、ある特定のメソッドがあることを抽象クラスHogeで保証するとしよう。 public interface Hoge { void hoge(); } このとき、機能性、つまりメソッドというのは増えることがない固定のものだが、継承して実装されたクラスというのは自由に増やすことができる。そして、抽象型Hogeを扱っている既存コードは修正する必要がない。 これはいわゆる開放/閉鎖原則(

    ジェネリクスによるVisitorパターン拡張の考察 - プログラマーの脳みそ
    sugimori
    sugimori 2012/08/22
    Genericsで考え方が変わるんだなー
  • 1