コードを整理する4つのアプローチ。
・サブルーチンのライブラリ化
・型のライブラリ化
・型の階層化
・型のパラメータ化
何を重視するか?
最初の分かれ道は、サブルーチンにこだわるか型にこだわるか。
型にこだわる場合、階層化を重視するか、型のパラメータ化を重視するか、が次の分かれ道。
私の流儀は、基本は、アプリケーション独自の型の設計にこだわること。
型の階層化は、型継承がぴったりくれば有力な選択肢。実装を継承する型の階層化は、基本的にはやらない。
型のパラメータ化は、よほど効果が期待できる場合はやることがある程度。めったにやらない。