创建型模式-工厂模式

工厂模式

简单工厂模式
  package com.example.demo.designmode.工厂模式;
  
  interface ICar {
      void run();
  }
  
  class XiaoMiCar implements ICar {
  
      @Override
      public void run() {
          System.out.println("小米跑车在跑!");
      }
  }
  
  class BYDCar implements ICar {
  
      @Override
      public void run() {
          System.out.println("比亚迪跑车在跑!");
      }
  }
  
  /**
   * 静态工厂
   */
  public class StaticFactory {
      public static ICar getCar(String carType) {
          if (carType.equals("xiaomi")) {
              return new XiaoMiCar();
          } else if (carType.equals("byd")) {
              return new BYDCar();
          }
          return null;
      }
  
      public static void main(String[] args) {
          ICar xiaomi = StaticFactory.getCar("xiaomi");
          xiaomi.run();
      }
  }
工厂方法模式
package com.example.demo.designmode.工厂模式;

interface Phone {

  public void show();
}

interface PhoneFactory {

  public Phone createPhone();
}

class XiaoMiPhone implements Phone {

  @Override
  public void show() {
      System.out.println("This is XiaoMi Phone!");
  }
}

class XiaoMiFactory implements PhoneFactory {
  @Override
  public Phone createPhone() {
      System.out.println("Create XiaoMi Phone!");
      return new XiaoMiPhone();
  }
}
class HuaWeiPhone implements Phone {

  @Override
  public void show() {
      System.out.println("This is HuaWei Phone!");
  }
}

class HuaWeiFactory implements PhoneFactory {
  @Override
  public Phone createPhone() {
      System.out.println("Create HuaWei Phone!");
      return new HuaWeiPhone();
  }
}


public class SimpleFactory {
  public static void main(String[] args) {
      PhoneFactory xiaomiFactory = new XiaoMiFactory();
      xiaomiFactory.createPhone().show();
  }
}
抽象工厂模式

。。。

相关推荐

  1. 创建模式-工厂模式

    2024-07-12 16:42:02       20 阅读
  2. 2.创建模式--工厂模式

    2024-07-12 16:42:02       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 16:42:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 16:42:02       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 16:42:02       58 阅读
  4. Python语言-面向对象

    2024-07-12 16:42:02       69 阅读

热门阅读

  1. C++多线程读写文件

    2024-07-12 16:42:02       24 阅读
  2. 利用大数据分析股市异常资金

    2024-07-12 16:42:02       21 阅读
  3. PyTorch 2-深度学习-模块

    2024-07-12 16:42:02       22 阅读
  4. 科锐国际2024年OD招聘,技术岗急招

    2024-07-12 16:42:02       22 阅读
  5. 使用 CSS 实现渐变效果

    2024-07-12 16:42:02       26 阅读
  6. 近期计算机领域的热点技术

    2024-07-12 16:42:02       24 阅读
  7. Spring Boot中如何集成ElasticSearch进行全文搜索

    2024-07-12 16:42:02       24 阅读
  8. C++ 识别 .lua文件内用户自定义的全局函数

    2024-07-12 16:42:02       23 阅读