• 设计模式之GOF23工厂模式02


    抽象工厂模式

    不能添加单个产品,产品族

    public interface Seat {
      void anmo();
    }
    class GoodSeat implements Seat {
     @Override
     public void anmo() {
       System.out.println("可以按摩");  
     }
    }
    class LowSeat implements Seat {
     @Override
     public void anmo() {
       System.out.println("不可以按摩");  
     }
    }

    public interface Tyre {
      void piaoyi();
    }
    class GoodTyre implements Tyre{
     @Override
     public void piaoyi() {
      System.out.println("可以漂移");
     }
    }
    class LowTyre implements Tyre{
     @Override
     public void piaoyi() {
      System.out.println("不可以漂移");
     }
    }

    public interface Engine {
      void run();
      void start();
    }
    class GoodEngine implements Engine {
     @Override
     public void run() {
      System.out.println("跑的快");
     }
     @Override
     public void start() {
        System.out.println("启动的快");
     }
    }
    class LowEngine implements Engine {
     @Override
     public void run() {
      System.out.println("跑的慢");
     }
     @Override
     public void start() {
        System.out.println("启动的慢");
     }
    }

    public interface CarFactory {
      Engine creatEngine();
      Seat creatSeat();
      Tyre creatTyre();
    }

    public class GoodCarFactory implements CarFactory{
     @Override
     public Engine creatEngine() {
      return new GoodEngine();
     }
     @Override
     public Seat creatSeat() {
      return new GoodSeat();
     }
     @Override
     public Tyre creatTyre() {
      return new GoodTyre();
     }
    }

    public class LowCarFactory implements CarFactory{
     @Override
     public Engine creatEngine() {
      return new LowEngine();
     }
     @Override
     public Seat creatSeat() {
      return new LowSeat();
     }
     @Override
     public Tyre creatTyre() {
      return new LowTyre();
     }
    }

    public class Client {
     public static void main(String[] args) {
     }
    }
  • 相关阅读:
    OpenCv 人脸识别 基础
    C++ 0x std::async 的应用
    C++ 0x 使用condition_variable 与 Mutex 同步两个线程
    Unity C# 调用 C++ DLL 并在 DLL 中调用 C# 的回调函数
    C++ 11 中的 Lambda 表达式的使用
    DirectShow 制作在Unity3D中可以设置进度的视频播放插件
    Async/Await 如何通过同步的方式实现异步
    React Native 开源项目汇总
    ES6 Promise的理解与简单实现(链接)
    深刻理解BFC(链接)
  • 原文地址:https://www.cnblogs.com/code-fun/p/11311982.html
Copyright © 2020-2023  润新知