Nov17th

デザインパターン のバックアップソース(No.3)

Top / デザインパターン

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

-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
ちょっと古い