工厂设计模式

若如初见. 提交于 2019-12-06 22:04:32

  为什么使用工厂模式:工厂是对对象的构造、实例化、初始化过程的一种封装。从而提供给其他需要对象的地方去使用,从而降低耦合度,提高扩展性和重用性。如果我们手动的在代码中用new关键字去创建对象,那么就会导致对象的诞生过程会绑定在我们的代码中。宿主类与实例化过程强耦合,后期维护会变得非常麻烦。

以造车做比喻:现在需要生产不同品牌的车,每种车的价格和属性不一样。

public class Car {
    private String colour;
    private int price;
    public Car(String colour,int price){
        this.colour=colour;
        this.price=price;
    }

    public void run(){
        System.out.println("跑");
    }
}

1、简单工厂:所有的对象实例的创建逻辑都写在一个类里

public class SimpleFactory {
    public Car create(String type){
        Car car=null;
        switch (type){
            case "benchi" :
                car=new Car("red",200000);
                break;
            case "fengtian":
                car=new Car("black",100000);
                break;
            case "wuling":
                car=new Car("yellow",30000);
                break;
        }
        return car;
    }
}

 

 

 

 

2、工厂方法:只提供一个接口,具体的哪类工厂,要自己去实现,一个工厂接口中只有一个工厂方法

 

3、抽象工厂:工厂方法的升级,对整个产品进行横向和纵向拆分,横向划分族:人类、异型,纵向划分:一等、二等、三等。

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!