我正在學習設計模式並在HERE中遇到非常奇怪的示例。如果我們有一個類:抽象工廠模式 - 未使用的代碼
public abstract class AbstractFactory {
abstract Color getColor(String color);
abstract Shape getShape(String shape) ;
}
正如我們可以看到的,有2種類型的方法創建對象:顏色和形狀。這是一個抽象類,所以我們必須建立具體落實這一點,所以讓我們假設我們有:
public class ShapeFactory extends AbstractFactory {
@Override
public Shape getShape(String shapeType){
// I skip implementation to keep post brief
}
@Override
Color getColor(String color) {
return null; // It's useless method in this class!
}
}
和第二實施:
public class ColorFactory extends AbstractFactory {
@Override
public Shape getShape(String shapeType){
return null; // It's useless method in this class!
}
@Override
Color getColor(String color) {
// I skip implementation to keep post brief
}
}
在這裏,我的問題是,在這兩種情況下(具體工廠)有一種完全沒用的方法,並且不存在,但是當我們創建AbstractFactory類時,我們必須實現這兩種方法。在編程中在不需要它的類中創建無用方法不是不好的習慣嗎?應該以其他方式完成,而不是像網站建議的那樣?
你是在問,什麼辦法可以跳過覆蓋方法之一嗎? – Ravi
該教程根本沒有意義。你很困惑。 –
有些時候是的。我很困惑becouse模式應該使代碼更加相關,但在這種情況下,對我來說好像是遠離良好的實踐。那麼你打算在這段代碼中改變什麼呢? – Michael213