簡單工廠模式:由乙個工廠物件決定建立出哪一種產品類的例項。
1.簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法模式,但不屬於23種gof設計模式之一。
2.優點:工廠類是整個模式的關鍵.包含了必要的邏輯判斷,根據外界給定的資訊,決定究竟應該
建立哪個具體類的物件.通過使用工廠類,外界可以從直接建立具體產品物件的尷尬局面擺脫出來,
僅僅需要負責「消費」物件就可以了。而不必管這些物件究竟如何建立及如何組織的.明確了各自的
職責和權利,有利於整個軟體體系結構的優化。
3.缺點:由於工廠類集中了所有例項的建立邏輯,違反了高內聚責任分配原則,將全部建立邏輯集中到
了乙個工廠類中;它所能建立的類只能是事先考慮到的,如果需要新增新的類,則就需要改變工廠類了。
可通過工廠方法模式克服該缺點。
/**
* 演算法操作基類
*/public class operation
public double getnumbera()
public void setnumbera(double numbera)
public double getnumberb()
public void setnumberb(double numberb)
}
/**
* 實現加法的具體運算,繼承運算類
*/public class operationadd extends operation
}
/**
* 實現減法的具體運算,繼承運算類
*/public class operationsub extends operation
}
/**
* 實現乘法的具體運算,繼承運算類
*/public class operationmul extends operation
}
/**
* 實現除法的具體運算,繼承運算類
*/public class operationdiv extends operation
result = getnumbera() / getnumberb();
return result;
}}
/**
* 運算子操作符列舉類
*/public enum operateenum
/**
* 簡單運算工廠類
*/public class operationfactory
return oper;
}}
public class main
}
工廠方法模式:定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。
工廠方法使乙個類的例項化延遲到其子類。
與簡單工廠模式的對比:
1.簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態
例項化相關的類,對於客戶端來說,去除了與具體的產品的依賴。
缺點是對擴充套件開放,對修改也開放,違背了開放-封閉原則。
2.工廠方法模式的優點是克服了簡單工廠違背了開放-封閉原則的缺點,又保持了封裝物件建立
過程的優點,是簡單工廠模式的進一步抽象和推廣。
缺點是每新增乙個產品,就得新增乙個產品工廠的類。
工廠方法模式例項:
/**
* 演算法操作基類
* */
public class operation
public double getnumbera()
public void setnumbera(double numbera)
public double getnumberb()
public void setnumberb(double numberb)
}
/**
* 實現加法的具體運算,繼承運算類
*/public class operationadd extends operation
}
/**
* 實現減法的具體運算,繼承運算類
*/public class operationsub extends operation
}
/**
* 實現乘法的具體運算,繼承運算類
*/public class operationmul extends operation
}
/**
* 實現除法的具體運算,繼承運算類
*/public class operationdiv extends operation
result = getnumbera() / getnumberb();
return result;
}}
/**
* 運算類工廠介面
* */
public inte***ce ifactory
/**
* 加法類工廠
* */
public class factoryadd implements ifactory
}
/**
* 減法類工廠
* */
public class factorysub implements ifactory
}
/**
* 乘法類工廠
* */
public class factorymul implements ifactory
}
/**
* 除法類工廠
* */
public class factorydiv implements ifactory
}
/**
* 工廠方法例項(計算器工廠)
* */
public class main
}
簡單工廠模式與工廠方法模式
簡單工廠模式是屬於建立型模式,又叫做 靜態工廠方法 static factory method 模式,但不屬於23種gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的乙個特殊實現。百科 最大的優點是包...
簡單工廠模式與工廠方法模式
工廠模式是建立模式,主要是為建立物件提供過渡介面 以便將建立物件的具體過程遮蔽隔離起來,達到提高靈活性的目的。工廠模式在 深入淺出設計模式 和 大話設計模式 中分為三類 這三種模式從上到下逐步抽象,並且更具有一般性。我剛開始看著 大話設計模式 學習,抽象工廠還沒看到,所以這一篇就先記一下前兩種,後面...
簡單工廠模式與工廠方法模式
簡單工廠模式,以計算器為例,結構如圖 簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關的類,對於客戶端來說,去除了與具體產品的依賴。問題在於,如果增加乙個子功能,需要新增相應的子類外,還要修改原有的工廠類,增加case判斷,修改原有的類,這就違背了 開放 封...