ファクトリメソッド - ふぁくとりめそっど

工場ラインのようにオブジェクトが次々と流れていくイラスト
Factory Methodを用いてオブジェクト生産に没頭するコードの光景。まるで無人工場のようだが、管理人は混乱している。
テクノロジー・科学

説明

ファクトリメソッドとは、オブジェクトの生成という単純作業を別クラスに丸投げし、設計パターンという名の無駄な階層を生み出す技術である。これによりコードは一見スマートに見えるが、その裏では依存関係の迷宮が静かに広がっている。開発者は抽象クラスと継承の儀式に時間を捧げることで、まるで神聖な祝福を受けたかのような錯覚に陥る。だが最終的に初学者は理解不能なFactoryMethod呼び出しの数に心を折られ、ベテランはそれを修正して夜を明かす運命にある。

定義

  • オブジェクト生成の責任を外注し、コードの複雑さをこっそり増幅する仕組み。
  • 抽象クラスを神格化し、具体クラスを下請け工場として扱う迷信のような設計手法。
  • インスタンス生成を隠蔽すると称し、デバッグの迷路を深くする魔法。
  • 単純なnew演算子を忌避し、抽象的なインターフェイスの階層を築く儀式。
  • 可変性と呼ばれる美辞麗句のもと、変更の負荷を複数のクラスに分散する分業モデル。
  • Factoryという名の工場で生産されたオブジェクトという産物を礼賛する思想。
  • 設計図を参照して実体を作る孫請け的手法。
  • コードの再利用を謳いながら、実質的には呼び出し元の筋肉質を奪う寄生虫的構造。
  • パターンの正当性を盾に、膨大なクラス群を正当化する方便。
  • 依存関係の鎖を連鎖させることで、安全性の幻想を演出するトリック。

用例

  • 「このFactoryMethodのおかげで、コードがすっきりしましたよ!」
  • 「本当に? じゃあ依存関係図見せてごらん?」
  • 「抽象クラスを増やしてみたら、誰も何も実装しなくなったんだ!」
  • 「それはFactoryMethodではなく、ただの怠慢の産物だよ。」
  • 「オブジェクト生成を自由に切り替えたくてFactoryMethod使ったんです。」
  • 「切り替えた結果、生成先がわからなくなったのかい?」
  • 「FactoryMethodは拡張性の象徴ですよ!」
  • 「象徴どころか、保守性の墓標だね。」
  • 「このFactoryMethodはテストを簡単にしてくれるんです!」
  • 「簡単にしてくれるのはテストコードの量だけだろう?」
  • 「FactoryMethodを使わないなんて時代遅れです!」
  • 「使わないと時代遅れ、使うと過剰設計。絶妙だね」
  • 「このFactoryMethodは新しいオブジェクトを勝手に生んでくれるんだ!」
  • 「勝手に生んだオブジェクトの責任は誰が取るんだい?」
  • 「依存性注入と組み合わせると神の如き威力ですよ。」
  • 「神の如き威力? いいや、ただの複雑化だよ。」
  • 「コードレビューでFactoryMethodを推奨されました。」
  • 「レビューした人は返り討ちにあったんだろう?」
  • 「FactoryMethodを学んだら設計パターンマスターだと勘違いしました。」
  • 「勘違いは初級者の特権だが、早く卒業したほうがいいよ。」

語り

  • 【設計メモ】ファクトリーメソッドは、実装者からインスタンス化を隠蔽し、誰も真の生成ロジックを知らない恐怖を生む。
  • モジュール間の結合度を下げるために導入されたはずのFactoryMethodは、気がつけばクラス数という名のゾンビを増やしていた。
  • FactoryMethodパターンを適用したプロジェクトでは、初期リリースよりバグ発見までの時間が短くなるという都市伝説がある。
  • 生成ロジックを外部化した結果、バグの居場所が指呼の間に移動し、開発者は探索の旅に出る羽目になる。
  • 適切なFactoryMethodの数を見極めることは、悟りを開くのと同じくらい難しい。
  • FactoryMethodが必要かどうかを議論する会議に参加した開発者は、帰宅後に無意味だったと悟る。
  • インターフェイスを増やすたびに、FactoryMethodを使えという呪文が飛び交う。
  • FactoryMethodを使っても動かない場合、多くの現場では「ドキュメントが足りない」という結論に至る。
  • 抽象クラスの名前を変更するだけでFactoryMethod呼び出し箇所が無数に該当し、リファクタ恐怖症を誘発する。
  • FactoryMethodを理解したつもりの新人が、クラス図を眺めて卒倒するのは伝統芸能である。
  • FactoryMethodマニアは、newキーワードを見ると背筋が寒くなるという。
  • FactoryMethodを適所に配置すると言いながら、いつの間にか何十ものFactoryクラスが並ぶ光景が広がる。
  • FactoryMethodはコードの拡張性を約束するが、代価として保守性の地雷原を提供する。
  • 抽象化の恩恵を受けるのは、もっぱらパターン解説書の執筆者だけかもしれない。
  • FactoryMethodを説明するスライドは、図解の美しさと現実の苦悶を同時に伝える。
  • FactoryMethodが生む階層構造は、まるで無限に枝分かれする樹海のようである。
  • FactoryMethodを捨てた瞬間、開発は急にスピーディーになるという噂がある。
  • FactoryMethodの有無を巡る議論は、休日出勤時にも続く宗教的儀式だ。
  • FactoryMethodを多用したプロジェクトは、ドキュメント不足による遭難者を毎年量産する。
  • FactoryMethodの呼び出し先を追いかけるコードリーディングは、脱出不可能な迷宮体験である。

関連語

別名称

  • インスタンス工場
  • 依存分散機
  • 抽象化マシン
  • クラス製造機
  • 遅延生成装置
  • 継承祭壇
  • メソッド信者
  • オブジェクト生産ライン
  • 無限抽象化
  • 設計パターン教団
  • 生成依存症
  • 工場メイジ
  • 遅延評価師
  • 依存コンベア
  • 工場監督
  • 継承の檻
  • オブジェクト農場
  • パターン魔術師
  • 秘密のファクトリ
  • 抽象主義者

同義語

  • 生成マジック
  • 抽象迷宮
  • 外注生成
  • 依存工房
  • 設計の罠
  • 階層の迷路
  • 抽象の檻
  • パターン依存
  • 生成の呪文
  • Factory呪縛
  • 複雑化装置
  • クラス地獄
  • 継承パラダイス
  • オブジェクト依存症
  • インスタンス迷路
  • 工場囚人
  • 抽象オーラ
  • 製造の怪
  • 継承の迷宮
  • 生産の罠

キーワード