设计模式(三)工厂模式

作用:
实现了创建者和调用者的分离
详细分类:
简单工厂模式(ioc)
工厂方法模式
抽象工厂模式
oop七大原则:
开闭原则:一个软件的实体应当对扩展开放,对修改关闭。
依赖倒转原则:要针对接口编程,不要针对实现编程。
迪米特法则:只与你直接的朋友通信,而避免和陌生人通信(要保持系统的清晰度)

工厂模式:

  • 核心本质:
    实例化对象不适用new,用工厂方法代替。
    将选择实现类,创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。

三种模式:

  • 简单工厂模式:
    用来生产同一等级结构中的任意产品(对于增加新的产品,需要球盖已有代码)
  • 工厂方法模式:
    用来生产同一等级结构中的固定产品(支持增加任意产品)
  • 抽象工厂模式
    围绕一个超级工厂创建其他工厂,该超级工厂又称为其他工厂的工厂。

简单工厂

一个车的模型(接口)

public interface Car {
    void name();
}

一个造车大厂什么车都造(各个具体的实现类)

public class CarFactory {
    public static Car getCar(String car){
        if(car.equals("五菱")){
            return new WuLing();
        }else if(car.equals("特斯拉")){
            return new Tesla();
        }else {
            return null;
        }
    }
    //方法二
    public static Car getWuling(){
        return  new WuLing();
    }
    public static Car getTesla(){
        return  new Tesla();
    }
}
3.具体的各个车的怎么实现

package com.my.factory.simple;

public class Tesla implements Car {
@Override
public void name(){
System.out.println("特斯拉");
}
}
``

public class WuLing implements Car {
    @Override
    public void name(){
    System.out.println("wulinghongguan");
    }
}

用户买车

public class Consumer {
    public static void main(String[] args) {
      /*Car car = (Car) new  WuLing();
        Car car1 = (Car) new  Tesla();*/
      //2.使用工厂创建
        Car car = CarFactory.getCar("五菱");
        Car car1 = CarFactory.getCar("特斯拉");
        car.name();
        car1.name();
    }
}


理想化的模型

posted @ 2021-11-25 11:33  不会笑的孩子  阅读(41)  评论(0)    收藏  举报