zoukankan      html  css  js  c++  java
  • 设计模式之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) {
     }
    }
  • 相关阅读:
    Vue.js $nextTick
    JS---函数名和变量名重名
    for循环中嵌套setTimeout,执行顺序和结果该如何理解?
    Rocket MQ整体简介
    ant Desgn Pro Vue 修改 title
    STS插件创建springboot项目,pom第一行报unkown错误
    c# 读取二进制文件并转换为 16 进制显示
    c# Winform 调用可执行 exe 文件
    按字节读取txt文件缓存区大小设置多少比较好?
    天翼云服务开放端口
  • 原文地址:https://www.cnblogs.com/code-fun/p/11311982.html
Copyright © 2011-2022 走看看