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

      

  • 相关阅读:
    SQL TOP 分页
    C# Word 打印
    Oracle 11g 卸载日志
    用 16G 内存存放 30亿数据(Java Map)转载
    HTMLDivElement.prototype
    在TOMCAT8.5使用 JOSSO 单点登录(Agent 端)
    德哥的PostgreSQL私房菜
    Object-relational impedance mismatch (转载)
    Java性能最后一个领域:去除垃圾回收器
    我们为什么选择Vue.js而不是React(转载)
  • 原文地址:https://www.cnblogs.com/huan30/p/12732978.html
Copyright © 2011-2022 走看看