zoukankan      html  css  js  c++  java
  • 工厂方法(Factory Method)

      工厂模式最终可以完成  

        1.任意定制交通工具

        2.任意定制生产过程 -- 工厂方法实现

        3.任意定制产品一族  -- 抽象工厂实现

      工厂方法-(Factory Method) : 定义一个用于创建产品的接口,由子类决定生产什么产品

    /**
     * 定义一个交通工具
     */
    public interface Vehicle {
        void go();
    }
    /**
     * 飞行扫把
     */
    public class Broom implements Vehicle {
        @Override
        public void go() {
            System.out.println("broom go");
        }
    }
    /**
     * 汽车
     */
    public class Car implements Vehicle {
        @Override
        public void go() {
            System.out.println("car go");
        }
    }
    /**
     * 飞机
     */
    public class Plane implements Vehicle {
        @Override
        public void go() {
            System.out.println("plane go ");
        }
    }
    

      

    /**
     * 交通创建工厂
     */
    public interface VehicleFactory {
        Vehicle create();
    }
    public class BroomFactory implements VehicleFactory {
        @Override
        public Vehicle create() {
            System.out.println(" create broom before");
            return new Broom();
        }
    }
    public class CarFactory implements VehicleFactory {
        @Override
        public Vehicle create() {
            System.out.println(" create car before");
            return new Car();
        }
    }
    public class PlaneFactory implements VehicleFactory {
        @Override
        public Vehicle create() {
            System.out.println(" create plane before");
            return new Plane();
        }
    }
    

     

    public class Main {
        public static void main(String[] args) {
            Vehicle car = new CarFactory().create();
            car.go();
            Vehicle plane = new PlaneFactory().create();
            plane.go();
        }
    }
    

    结果: create car before car go create plane before plane go

      

  • 相关阅读:
    C++中的指针和数组
    windows系统下JDK1.6环境变量配置
    Java Reflection (JAVA反射)
    转载:cin深入分析(下) – cin的错误处理
    OpenGL总结
    OpenGL纹理
    c/C++内存分配
    转载:cin深入分析(上) – cin输入操作处理
    c++中string的用法
    OpenGL颜色
  • 原文地址:https://www.cnblogs.com/huan30/p/12732978.html
Copyright © 2011-2022 走看看