私は絶えずこの問題に直面しています。私のアプローチが正しいのかどうかはわかりません。私が働いているプロジェクトのコードベースは古いものではなく、数十の他のクラスが現在のコンストラクタを使用するため、ビルダーパターンまたは静的ファクトリで現在のコンストラクタを変更することはできません。既存のクラスにコンストラクタを最小効果で追加する
現在のコンストラクタです。
// Constructor used until now
public MatchingPortfolioUtil(Integer parameterA, Integer parameterB,
Integer parameterC)
{
this.parameterA = parameterA;
this.parameterB = parameterB;
this.parameterC = parameterC;
}
と次のコンストラクタを追加します。今まで
// The new constructor
public MatchingPortfolioUtil(Integer parameterA)
{
this.parameterA = parameterA;
}
、すべてが正常なようだが、私は(良いデザインで可能な場合)したいことは、それはいくつかの原因になりますので、私は私の新しいモジュール用に作成されたコンストラクタが、唯一の私の新しいモジュールを使用すべきであるということです他のモジュールが他のモジュールでこのコンストラクターを安全に使用していると考えて例外を使用する場合は例外です。
既存のクラスのサブクラスを作成し、そこにコンストラクタを追加します。 – Jens
@Jens現在のクラスのサブクラスを作成する場合は、このコンストラクタをsuperで再度使用する必要があります。私はもしあればよりクリーンなソリューションを楽しみにしています。 –
コンストラクタ(which)をもう一度使う必要があるのはなぜですか? – Jens