KMC活動ブログ

京大マイコンクラブの活動の様子を紹介します!!

デザインパターン勉強会第4回

こんばんわ、KMC3回生のwristです。
今日はBuilderパターンとAbstractFactoryパターン。
Builderパターンは参加者みんな理解できた感じでしたが、
AbstractFactoryの方は…。
TemplateMethod,FactoryMethodとかとどう違うのかという話になって、
もう一度wikipediaのクラス図を見てみると、FactoryMethodの方はcreateがprotectedで外部からアクセスできないが、Abstractの方はcreateメソッドがpublicだった!
FactoryMethodは基底クラスのあるメソッドの中でインスタンスを生成するとき、
それをメソッドにすることによって継承しやすくするというもの。
AbstractFactoryFactoryMethodを外部から利用するためのパターンであることが分かりました。

それからもう1つ、AbstractFacoryを無理やり使った例。
アクションゲームで背景(たとえば地面とか木とか雨とか)を生成するとき、
夏ならば緑色の草原、緑色の木、夕立っぽい雨
冬ならば氷のはった地面、雪が積もった木、雪を生成してほしいとする。
そういうときには使えるんじゃないのかなぁという話になりました。

まぁAbstractFactoryのまとめとしては、似たようなインスタンスがいっぱいあって、こういう組み合わせで使って下さいというのを明示したいときに使うんでしょう。きっと

さて次回は試験を挟んで2/5になると思います。
それでは。