51
33

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ちょうぜつAdvent Calendar 2019

Day 3

マンガでわかる Factory Method

Last updated at Posted at 2019-12-03

136D975D-2C6E-4860-A523-C1EBB89B976E.png

ミニ四駆も実はなかなか難しいんだけど、基本キットや難しいところは模型屋のおじさんが準備してくれてるとおりにやればいいので、小学生でも参加できる体験教室ができるんですね。

おじさんが渡してくれるキットのように、作り方の大枠はあらかじめ準備された抽象 (ただしそれだけでは目的物は完成しない) とし、難しい工程はおじさんがやるってことになってる、そんな生成フレームワークを考えるんですよ。

体験教室の各参加者は、そのしくみを継承したファクトリになりきって、誰でもできるパーツを選ぶ工程 (簡単だけど重要) と、走行性能に関係しない塗装工程 (これもオリジナル感を出すのにとても重要) を、自分好みで実装したらオッケー。

これならオリジナルミニ四駆でも生産性が安定するし、模型屋さんもカスタムパーツじゃんじゃん売れますね。

Factory Method は、多様な具象クラスを抽象クラスのメソッドの穴埋めで完成させる Template Method のファクトリ版とも言えます。

で、ここ注意! 名前は似ているけれど、作り方より先に使い方に着目する Abstract Factory とは違い、こっちは、終始作り方に着目するのがポイントですよ。この差がめちゃくちゃ重要。

意味が排他的な関係じゃない、というかむしろ補完関係なので、 「クライアントコードが求める Abstract Factory を、Factory Method パターンで提供する」なんてことも普通にあります。このコードは何のパターンか、ではなく、コードの関係に着目してどうパターンを見出すか、なのです。

51
33
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
51
33

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?