私は、まず第一に、15 または 20 の引数が渡された巨大なコンストラクターを持つクラスのライブラリーを使用しています。これらのクラスは 20 ほどあり、引数は似ていますが、厳密には同じではありません。引数 12 が省略されているものもあれば、指定されているが必須ではないものもあります...
これらの引数の多くは互いに関連しているため、これらの引数をオブジェクトに構成することを考えています。たとえば、FirstName、LastName、および Email Address を Person オブジェクトにします。しかし、これはいくつかのモンスター クラスにつながるようです。オブジェクトをまったく使用しないと、すべての引数が使用され、ほとんどの場合、使用される引数はわずかになります。
現在、すべての検証ロジックはすべてのコンストラクターにあります...コンストラクターを継承チェーンのかなり下にチェーンする問題を解決できれば、各クラスをオーバーライドして単純化できる抽象 Validate() メソッドを作成できますデザイン。Refactoring to Patterns を確認しましたが、この質問に直接関係していると思われるものは何も見当たりませんでした。
注: これはこれのだまされたものではありません。同様のオブジェクトではなく、同様のコンストラクターについて話しているのです。wazoo から抽象基本クラスを取得しました。