相同的實現說我有以下情形:在不同的子類
abstract class A {
abstract method1();
abstract method2();
}
class B extends A {
method1() {
// implementation 1
}
method2() {
// implementation 3
}
}
class C extends A {
method1() {
// implementation 1
}
method2() {
// implementation 4
}
}
class D extends A {
method1() {
// implementation 2
}
method2() {
// implementation 4
}
}
底線:同一類的幾個子類,採用不同的方法實現了不同的方法。
問題是我在不同的子類中有相同的實現。我的問題是如何處理這些常見的實現?
這樣做的邏輯方法是創建另一個抽象層次,但只有當我有一個具有通用實現的方法(因爲Java沒有多重繼承)時纔有效。我也可以把最常用的實現放在超類中,並且只在其他類中實現。然而,我不會這樣做,因爲最常見的實現可能會隨着其他類的添加而改變,此外,我想將抽象方法保留在超類中。
是否有某種模式能以「優雅的方式」解決我的問題?
有沒有模式可以放在一堆無關的方法。模式將取決於這些方法如何相互關聯(模式的上下文部分) –
如果方法不相關,但您仍然想從一個類繼續引用它們,請使用:「單一類,無繼承和命令模式(每個方法一個命令對象)',則可以通過構造函數 –
注入命令對象。它們不是無關的。它們爲客戶端提供了一些必需的功能,但只是以不同的方式做。 – Deelazee