GOF设计模式--简单工厂模式
生活随笔
收集整理的這篇文章主要介紹了
GOF设计模式--简单工厂模式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
簡單工廠模式是屬于創(chuàng)建型模式,又叫做靜態(tài)工廠方法(Static Factory Method)模式,但不屬于23種GOF設計模式之一。簡單工廠模式是由一個工廠對象決定創(chuàng)建出哪一種產(chǎn)品類的實例。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的一個特殊實現(xiàn)。 ——360百科
簡單的說工廠是用來接收訂單,生產(chǎn)產(chǎn)品的地方,簡單工廠,就是說這個工廠有點簡陋功能設備比較少。
舉個生產(chǎn)汽車的例子:
既然是汽車工廠首先要有汽車這個實體的抽象類
public abstract class Car {public abstract String getCar();}然后創(chuàng)建每一種汽車
public class Honda extends Car {@Overridepublic String getCar() {return "Honda";} } public class Mazda extends Car {@Overridepublic String getCar() {return "Mazda";} } public class Toyota extends Car {@Overridepublic String getCar() {return "Toyota";} }創(chuàng)建工廠
public class CarFactory {public String createCar(String carType){Car car = null;switch (carType){case "Honda":car = new Honda();break;case "Mazda":car = new Mazda();break;case "Toyota":car = new Toyota();break;default:return "設備有限暫不支持生產(chǎn)" + carType;}return car.getCar();}public static void main(String[] args) {CarFactory carFactory = new CarFactory();System.out.println(carFactory.createCar("Mazda"));System.out.println(carFactory.createCar("Audi"));} }使用場景
工廠類負責創(chuàng)建的對象比較少。
客戶只知道傳入工廠類的參數(shù),對于如何創(chuàng)建對象(邏輯)不關心。
簡單工廠模式優(yōu)缺點
優(yōu)點:
使用戶根據(jù)參數(shù)獲得對應的類實例,避免了直接實例化類,降低了耦合性。
缺點:
可實例化的類型在編譯期間已經(jīng)被確定,如果增加新類型,則需要修改工廠,違背了開放封閉原則 。 簡單工廠需要知道所有要生成的類型,當子類過多或者子類層次過多時不適合使用。
代碼地址:https://github.com/mazh1992/model/
總結(jié)
以上是生活随笔為你收集整理的GOF设计模式--简单工厂模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 7-13 部落 (25 分)
- 下一篇: mvc怎么单独引用css文件,关于asp