Nov19th

デザインパターン のバックアップ差分(No.4)

Top / デザインパターン


  • 追加された行はこの色です。
  • 削除された行はこの色です。
*パターン別まとめ [#se791222]
**Abstract Factory [#a4034398]
-特定のクラス名で固定されていると、生成コードを全て書き換える必要が出てくるので、一カ所にまとめる
--生成部は全てfactory.createProductA()になり、createProductA()内のnew ProductA()を書き換えるだけで修正可能に
--//サンプル

-使い所
--Productの生成を行う場所が複数個所、別々にある時

-Template Methodだと共通のインタフェースをまとめるだけで、生成するコードの置き換えはできない

-Abstract Factoryでは、ユーザにConcrete Factoryだけを見せることはできない
-Product数を柔軟に変えることはできない
-Abstract ProductとConcrete Productは1対1
--Concrete FactoryでswitchすればProductNの中身は差し替えられるかもしれないが

-Abstract FactoryとFactory Methodの差は生成するクラスの型が分かるか分からないかの違い?

-ファクトリパターンで作るクラスのクラス名自体はハードコーディングせざる得ない?
--typeidで何とかなるかもしれない
--Abstract Factoryがそれっぽいことやってそうな感
---http://www.geocities.jp/showa_yojyo/note/alexandrescu01-note3.html#id5
---Modern C++ Designに書いてある模様

*リンク [#gd9fcb37]
-Dia
https://wiki.gnome.org/Apps/Dia/
不安定なことが多い

-astah* community
http://astah.change-vision.com/ja/product/astah-community.html
無償版の機能制限が多い

-UMLエディタ JUDE
http://jude.change-vision.com/jude-web/product/community.html
ちょっと古い