第4回 Factory Methodパターン

NO IMAGE

お疲れ様です!ぼんじりです!
最近、バーチャル株トレードを始めました。
なかなか急激に利益を得ることは難しいんですね。
資本金1000万から2週間で+20万。
これはセンスがあるのかないのか・・・。まだ勉強中なので長期で見たときに
どのような収益になっているか楽しみです!
ではデザインパターン!!
前回学習したTemplate Methodパターンでは処理の骨組みを作りサブクラスで具体的な処理の
肉付けを行っていました。このパターンを、今回のFactory Methodパターンではインスタンス
生成の場面で用いるようです。
登場人物です。
今回から役だけでなく動作という表現で参考書のサンプルプログラムのメソッドを
記入していきたいと思います。
■Product(製品)の役
フレームワーク側のクラス。このパターンで生成されるインスタンスが持つべき
インタフェースを定める抽象クラス。具体的な内容は、サブクラスのConcreteProduct役
で定める。
<動作>
・(製品)を使うとき→「」
■Creator(作成者)の役
フレームワーク側のクラス。Puroduct役を生成する抽象クラス。
具体的な内容はサブクラスのConcreteCreatorで定める。
<動作>
・(製品)を新しく作るときは
(製品)を組み立てる
(製品)を登録
を行います
■ConcreteProduct(具体的製品)の役
具体的な製品の肉付けをするクラス。
<動作>
・(製品)を使うとき→「”(名前)さんの(具体的製品)を使います!”」
■ConcreteCreator(具体的製作者)の役
具体席名製品を作るクラス。
<動作>
・(具体的製品)を組み立てるときは
(具体的製品)”の名前を書いて”組み立てる
(具体的製品)”の名前を”を登録
を行います
>>サブクラスの処理の肉付けを””内に記入して継承していることを表現してみました。
  わかりやすくなりましたかね?自分ではしっくりきています。
○実装方法
Creator役のインスタンスを作るメソッド(新しく作るときは~を行います)は、3つの実装方法がある。
1.抽象メソッドにする
  ⇒サブクラスは必ずこのメソッドを実装しなければならなくなる。
   コンパイル時に検出される。(サンプルプログラムの実装方法)
2.デフォルトの実装を用意しておく
  ⇒サブクラスで実装しなかった場合には、デフォルトの実装が使われる。
3.エラーにする
  ⇒実行時にエラーなるようにする。(throwでエラーキャッチする)
※注意点
前回のTemplateMethodも共通にいえることでパターン利用者と開発者の意思疎通が必要。
1つのクラスを呼んだだけでは理解できず、スパークラスの動作の骨組みを理解し、そこで
使われている抽象メソッドがなにかが理解できていないと、設計者の意図から離れた修正が
加えられてしまう可能性がある。
>さらっと読んでみて普段使っているフレームワークのアレのことか!とピンときました。
 先にデザインパターンが用いられているフレームワークを利用していると創造がとても
 つきやすいです。デザインパターンだけ学習していたら、把握できていたかどうか・・・。
 感謝感謝ですね。
次回は第5回 Singleton です!
なんかおいしそうな名前ですね!では!