经常使用设计模式-工厂模式

一、简单工厂模式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数据库应用时,系统能够会替换数据库,这时候抽象工厂模式就派上用场了。

相关文章
相关标签/搜索