我正在開發一個個人項目,並且遇到了一個問題。使用虛擬方法的靜態抽象對象
我有一些對象具有相同的屬性,方法等。唯一不同的是它們的名稱,屬性值和方法的實現。他們還需要通用的方法默認實現。所以馬上,一個界面是不可能的。
所以我創建了一個包含屬性和「默認」方法的基類。但是這個基類需要抽象。這些方法是虛擬的,因此可以被覆蓋。
我需要它們是靜態的原因是對象將是其他對象的屬性。因此,例如,上面引用的對象是(爲了簡單起見)objX,objY,objZ。它們來源於它們的基礎,objW。
objContainer是一個完全不相關的對象,但它有一個objW類型的屬性,它是objX,objY,objZ的一個實例。
objX,objY和objZ將從不更改。它們的屬性將全部是隻讀的。因此objContainer實例的多個對象將具有objX,objY或objZ。
public class objContainer1
{
objW processor = new objY;
}
public class objContainer2
{
objW processor = new objY;
}
我該如何去做這件事?我想讓它們保持靜態,所以我沒有同一個對象的多個實例,當它們全部完全相同時,實際上是這樣。
我使用單身嗎?工廠模式?
我失去了這個方向(如果有的話)。也許我正在推翻它,並且有一個非常簡單的解決方案/
謝謝。跟進問題。如果所有對象都是具有公共代碼的單例,那麼他們是否有辦法繼承父類中的所有單例模式,同時仍然單獨是單例本身?我基本上希望派生類實現單例模式,而不必爲每個類重複它。 – ilyketurdles