ソフトウェア開発メモ

日々のソフトウェア設計、実装で考えている、気づいた事を書いています。それが真実か否かは保証しません。悪しからず。

ファクトリーメソッドを積極的に作る。

オブジェクトの生成処理は長くなりがちです。1箇所だけしか呼ばれていないのに作るのは過剰設計じゃないかと思っていた時期も有りましたが、ドメイン駆動設計等、いろいろ文献等を読みあさった結果、以下の理由により、それでもファクトリーメソッドとして切り出した方がよいと思いました。

  • コードの見通しが良くなる。へたに分かりにくいコメントを書くよりメソッドの方が分かり易い場合場合が多い。例:- (NSPredicate )predicateForRemindersInCalendars:(NSArray )calendars

  • 生成ロジックを共通化し易い。内部で下請けメソッドを作ってそこで処理をさせる事ができる。

  • キャッシュ処理やリサイクルを組み込んだりできる。

ただし、引数にとるいろんなクラスに依存しやすいので適時クラスを分割する必要があります。iOSだとカテゴリーを使えば簡単ですね。

皆様はいかがでしょうか。

追加: と書いててeric evansのドメイン駆動設計に置き場所に関する言及が有った。