zoukankan      html  css  js  c++  java
  • java工厂模式的测试


    /**
    * 工厂模式的测试
    * <p>
    * 工厂方法模式
    * 工厂方法模式是简单工厂模式的进一步抽象化和推广,工厂方法模式里不再只由一个工厂类决定那一个产品类应当被实例化,这个决定被交给抽象工厂的子类去做。 *   来看下它的组成:
    * 1)抽象工厂角色: 这是工厂方法模式的核心,它与应用程序无关。是具体工厂角色必须实现的接口或者必须继承的父类。在java中它由抽象类或者接口来实现。
    * 2)具体工厂角色:它含有和具体业务逻辑有关的代码。由应用程序调用以创建对应的具体产品的对象。
    * 3)抽象产品角色:它是具体产品继承的父类或者是实现的接口。在java中一般有抽象类或者接口来实现。
    * 4)具体产品角色:具体工厂角色所创建的对象就是此角色的实例。在java中由具体的类来实现。
    */
    public class MyFactoryClass {

    public static void main(String[] age) {
    //获取产品plane
    VehicleFactory vehicleFactory = new DefauleFactory();
    vehicleFactory.createPlan().rum();

    //获取产品Broom
    VehicleFactory vehicleFactory2 = new DefauleFactory();
    Broom b = vehicleFactory2.createBroom();
    b.rum();
    b.get();


    /**
    * 输出结果为:
    *plane
    broom
    123456789
    */
    }

    //===========================================================================产品

    //抽象产品角色(产品的父类)
    public interface Moveable {
    void rum();
    }

    //具体产品角-1
    public static class Plane implements Moveable {
    @Override
    public void rum() {
    System.out.println("plane");
    }
    }

    //具体产品角色-2
    public static class Broom implements Moveable {
    @Override
    public void rum() {
    System.out.println("broom");
    }

    public void get() {
    System.out.println("123456789");
    }
    }

    //===========================================================================工厂类
    //抽象工厂
    public static abstract class VehicleFactory {
    abstract Plane createPlan();

    abstract Broom createBroom();
    }

    //具体工厂
    public static class DefauleFactory extends VehicleFactory {
    @Override
    Plane createPlan() {
    return new Plane();
    }

    @Override
    Broom createBroom() {
    return new Broom();
    }
    }

    }
  • 相关阅读:
    Java 7 中 NIO.2 的使用——第二节 元数据文件的属性
    Java 7 中 NIO.2 的使用——第一节 Path 类的使用
    使用第三方工具覆写Object中方法
    Java Synchronized Blocks vs. Methods
    生如夏花,死如秋叶
    Struts2中的ModelDriven机制及其运用(转)
    Java 调用 Javascript 函数的范例
    枚举实现工厂模式
    使用Java 8 Lambda表达式对Employee类进行操作
    自定义异常时如何定义checked异常和unchecked异常
  • 原文地址:https://www.cnblogs.com/yy2012/p/7155696.html
Copyright © 2011-2022 走看看