1
我有一個接口,它的API只是getter方法,從而確保實現接口的類在這方面是不可變的。
但是,如果我需要更新改變接口行爲的東西,我將如何聲明我的接口,以便它創建具體類的新實例?
現在我有這樣的事情:爲了清晰強制不變性並在接口聲明中創建實例
public interface Generator {
public int[] values();
public float[] indications();
//etc
public MyEnum type;
}
public class ConcreteClass implements Generator {
private ConcreteClass() {
}
public static ConcreteClass createInstance() {
}
}
我已經被省略參數。
我該如何將createInstance
移動到界面上?
我在考慮是否將'createInstance()'作爲接口聲明的一部分移動到一個好的設計方法或不是。我只會定義方法而不是實際的實現 – Jim
在接口中添加一個抽象方法來創建一個新的實例,假設接口知道約束實現(如必填字段),並且這不是一個好主意,或者是因爲它的耦合實現的接口。只有相反纔是真的。 – davidxxx
然後,當我說接口定義的東西是不可變的,這是不正確的嗎?因此,如果我添加一個setter,無關緊要? – Jim