LoDに続くテスト可能なコードを読んでいましたが、頭の中ですべてが台無しになりました。したがって、このコードに関するガイダンスをいただければ幸いです。
public class HouseConfiguration {
private final int noOfDoors;
private final int noOfWindows;
//.... And so on
public HouseConfiguration(int noOfDoors, int noOfWindows){
this.noOfDoors = noOfDoors;
this.noOfWindows = noOfWindows;
//.....
}
//getters for config
}
public class Contractor {
public House buildHouse(HouseConfiguration houseConfiguration) throws Exception{
validateHouseConfiguration(houseConfiguration);
Window[] windows = new Window[houseConfiguration.getNoOfDoors()];
return new House(windows);
}
private void validateHouseConfiguration(HouseConfiguration houseConfiguration) {
//validation logic
}
}
public class House {
private Window[] windows;
//Now as the parameters increase it becomes a problem to pass so many arguments in constructor
public House(Window[] windows /*Also other arguments */) {
this.windows = windows;
}
}
コンストラクターの引数がHouse
増えるにつれて、コンストラクターを使用してそれを管理することは困難になります。多くの依存関係が渡されます。それは正しいことですか?または、このコードをリファクタリングできるより良い方法はありますか?
編集:House
コンストラクター引数を参照する