• 《大话设计模式》——简单工厂模式


    简单工厂模式需要有三个组成角色:

    1、工厂类角色:负责生成具体产品类。

    2、抽象产品角色:代表了具体产品的一个抽象类或是接口。

    3、具体产品角色:最后生成的实例对象即是它。

    我们以一个车辆选择的例子来作说明:

    1、工厂类:此例中代表我们想要选择的车型,可以是“benz”和"audi"。

    public class CarFactory {
    
      //根据我们的输入参数,返回一个具体的产品类 public static Car createCar(String carname){ Car car = null; switch (carname) { case "benz": car = new Benz(); break; case "audi": car = new Audi(); break; default: break; } return car; } }

    2、抽象产品类:此例中代表了车的共同特性,例如可以开driver();

    public interface Car {
    
        void driver();
    }

    3、具体产品类:由工程模式生成的实体类。在这里有两个具体产品类,一个是Benz,一个是Audi。

    public class Benz implements Car {
    
        @Override
        public void driver() {
            System.out.println("driver Benz!");
        }
    
    }
    public class Audi implements Car {
    
        @Override
        public void driver() {
            System.out.println("driver Audi!");
        }
    
    }

    客户端代码:在这里我们想要一台benz车,于是调用工厂类生成benz。如果我们想要一台audi车,可以输入参数audi即可。

        public Main() {
            Car car = CarFactory.createCar("benz");
            car.driver();
        }

    简单工厂模式的缺点:

    我们每添加一个实体类,就需要在工厂类中添加一个case分支。这里的工厂类被称为万能工厂。

  • 相关阅读:
    vue项目接入百度地图
    angularJS 十六进制与字符串相互转换
    angular项目实现mqtt的订阅与发布 ngx-mqtt
    消息中间件MQTT
    Zigbee 与 WiFi 的区别
    angular6 路由拼接查询参数如 ?id=1 并获取url参数
    SpringBoot拦截器
    SpringBoot定时任务
    SpringBoot 各层之间的关系
    百度离线地图 —— 瓦片地图下载
  • 原文地址:https://www.cnblogs.com/yxth/p/7159492.html
Copyright © 2020-2023  润新知