經常使用設計模式-工廠模式

一、簡單工廠模式mysql

1.一、簡單工廠模式缺點:每增長一款汽車都須要修改工廠類。違背開閉原則sql

1.二、簡單工廠模式代碼數據庫

/**
 * 簡單工廠模式
 */
public class CarFactory {

    public Car getCar(String type){
        if(type.equals("benz")){
            return new Benz();
        }else if(type.equals("hummer")){
            return new Hummer();
        }
        return null;
    }

}

 

二、工廠方法模式oracle

2.一、工廠方法模式特色:職責單一,只負責生產單一產品。ide

2.二、工廠方法模式優勢:避免簡單工廠模式的缺點。新增一款汽車只須要新建一家工廠便可。符合開閉原則spa

2.三、工廠方法模式代碼code

/*
*工廠接口
 */
public interface CarFactory {
    Car createCar();
}

/**
*寶馬工廠生產寶馬汽車
 */
public class BMWFactory implements CarFactory {
    @Override
    public Car createCar() {
        return new BMWCar();
    }
}

 

三、抽象工廠模式blog

3.一、抽象工廠模式特色:工廠負責生產旗下多個產品(產品族)接口

3.二、抽象工廠模式代碼get

 todo

 

四、工廠方法模式與抽象工廠模式區別

工廠方法模式:該工廠只生產單一產品。

抽象工廠模式:該工廠會生產多個產品(產品族),打比方:一個超級工廠裏面分小工廠,工廠1生產輪胎、工廠2生產方向盤、工廠3生產:底盤等等。

4.一、工廠方法模式代碼

/**
*汽車接口
 */
public interface Car {
    void driver();
}


/**
*悍馬汽車
 */
public class Hummer implements Car {
    @Override
    public void driver() {
        return;
    }
}


/**
* 汽車工廠接口
 * 新增汽車工廠實現此接口便可
 */
public interface CarFactory {
    Car createCar();
}


/**
* 悍馬工廠
 */
public class HummerFactory implements CarFactory{
    @Override
    public Car createCar(){
        return new Hummer();
    }
}

 4.二、抽象工廠模式代碼

/*
*工廠生產;車胎、方向盤、底盤等汽車配置(一族產品)
* 汽車工廠接口
* 新增汽車工廠實現此接口便可
*/
public interface CarFactory {
    Tyre createTyre();
    Wheel ceateWheel();
    Chassis createChassis();
}


/**
 * 奔馳工廠生產奔馳汽車配件(奔馳一系列產品)
 */
public class BenzFactory implements CarFactory {
    @Override
    public Tyre createTyre() {
        return new BenzTyre();
    }

    @Override
    public Wheel ceateWheel() {
        return new BenzWheel();
    }

    @Override
    public Chassis createChassis() {
        return new BenzChassis();
    }
}

/**
* 悍馬工廠生產悍馬汽車配件(悍馬一系列產品)
 */
public class HummerFactory implements CarFactory{
    @Override
    public Tyre createTyre() {
        return new HummerTyre();
    }

    @Override
    public Wheel ceateWheel() {
        return new HummerWheel();
    }

    @Override
    public Chassis createChassis() {
        return new HummerChassis();
    }
}

 

 五、抽象工廠模式什麼狀況下會用到?

5.一、抽象工廠模式會使用上:須要生產公司旗下的一系列產品(產品族)。同時其它公司旗下也會生產一樣一系列產品。只是兩個工廠生產出來品牌不同。

5.二、抽象工廠模式常見應用:oracle和mysql數據庫應用時,系統能夠會替換數據庫,這時候抽象工廠模式就派上用場了。

相關文章
相關標籤/搜索