zoukankan      html  css  js  c++  java
  • 《大话设计模式》——简单工厂模式

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

    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分支。这里的工厂类被称为万能工厂。

  • 相关阅读:
    Java -- JDBC 批处理
    Java -- JDBC mysql读写大数据,文本 和 二进制文件
    Python之操作符优先级
    闲聊之Python的数据类型
    UPX和WinUpack压缩壳的使用和脱法
    改进我们的小游戏
    Python while循环语法
    Python条件分支语法
    python条件分支
    小插曲之变量和字符串
  • 原文地址:https://www.cnblogs.com/yxth/p/7159492.html
Copyright © 2011-2022 走看看