Help us understand the problem. What is going on with this article?

マンガでわかる Factory Method

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

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

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

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

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

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

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

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

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away