假設我們有一個包含一些組件(對象字段)的類,它們中的一些可以爲null(刪除) 是否適合創建沒有(組件)字段或使用接口來處理它的新類。假設我們在類的方法,可以對某些對象被刪除提前我們如何配置類的空可移動組件(對象字段)?
public class Class1{
Component1 component1;
Component2 component2;
Component3 component3;//can be null (removed)
Component4 component4;//can be null (removed)
}
public class Class2{//removed component3,component4(new class)
Component1 component1;
Component2 component2;
}
public class Class3{//removed component3(new class)
Component1 component1;
Component2 component2;
Component4 component4;
}
public class Class4{//removed component4(new class)
Component1 component1;
Component2 component2;
Component3 component3;
}
或使用的界面
public interface IComponent1{
}
public class Component1:IComponent1{
}
public class NoComponent1:IComponent1{
}
public interface IComponent2{
}
public class Component2:IComponent2{
}
public class NoComponent2:IComponent2{
}
public interface IComponent3{
}
public class Component3:IComponent3{
}
public class NoComponent3:IComponent3{
}
public interface IComponent4{
}
public class Component4:IComponent4{
}
public class NoComponent4:IComponent4{
}
public class Class1{
IComponent1 componentBehaviour1;
IComponent2 componentBehaviour2;
IComponent3 componentBehaviour3;
IComponent4 componentBehaviour4;
}
THX或檢查NULL條件(如果需要)幾部分組成。
您的問題主要是基於意見,所以不適合堆棧溢出。也就是說,我的觀點是,如果這些字段對於一組特定的對象是不使用的,那麼是的......將這個類分離成單獨的類是合適的,這些字段適合於每個這些對象的實例類。另一方面,如果你有一種情況,你必須用其他類的實例替換一個類的一個實例,這是因爲你剛開始有一個null值,或者反之亦然,那麼不......不這樣做。 –
謝謝,但如果我有幾個相同的字段的類我怎麼能訪問不同類的對象字段(例如在循環中)。我應該使用泛型爲這些類實現GetComponent()嗎? – Mahdi
_「我有幾個相同領域的課程」_ - 你爲什麼要這樣做?如果他們是相同的領域,讓他們成爲同一個班級。如果由於某種原因它們不能是同一個類,那麼就考慮定義一個可以實現每個類的接口,然後當需要這些字段時可以使用該接口。 –