工厂模式

Posted dakuzai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工厂模式相关的知识,希望对你有一定的参考价值。

简单工厂模式

遵守的原则

OOP七大原则

代码实现

//接口
public interface Car {
    void name();
}
//实现接口,创建WuLing
public class WuLing implements Car {

    @Override
    public void name() {
        System.out.println("五菱宏光");
    }
}
//实现接口,创建Tesla
public class Tesla implements Car {

    @Override
    public void name() {
        System.out.println("特斯拉");
    }
}
//工厂
public class CarFactory {

    public static Car getCar(String car){
        if (!car.isEmpty()){
            if (car.equals("五菱")){
                return new WuLing();
            }else if(car.equals("特斯拉")){
                return new Tesla();
            }else {
                return null;
            }
        }else {
            return null;
        }
    }

}
 //消费者
public class Consumer {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入车子名称");
        if (scanner.hasNext()) {
            String name = scanner.nextLine();
            Car car = CarFactory.getCar(name);
            car.name();
        }
        scanner.close();
    }
}

抽象工厂模式

定义

提供一个创建一系列相关或者相互依赖对象的接口,无需指定他们具体的类。我自己的理解就是在一定意义提前创建了一个相关产品对象的产品集合。拙见而已,不对的地方望指正

代码实现

小结

违反开闭原则,每次消费不同的车子,就要改变原来的工厂。
抽象工厂在一个稳定的业务结构中很强大,反之也会违反开闭原则。


以上是关于工厂模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式学习——简单工厂模式工厂模式抽象工厂模式

设计模式简单工厂模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )

设计模式学习——简单工厂模式工厂模式抽象工厂模式

设计模式工厂方法模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )

设计模式-简单工厂工厂方法模式抽象工厂模式详解

C++工厂模式(简单工厂工厂方法抽象工厂)