zoukankan      html  css  js  c++  java
  • 设计模式-工厂方法模式

    符合开闭原则,单一职责原则。

    /**
     * 抽象工厂模式
     */
    public class FactoryMethod {
        public static void main(String[] args) {
            Application application = new ConcreteProductA();
    //        Application application = new ConcreteProductA1();
            Product product = application.getObject();
            product.method1();
        }
    
    
    }
    
    /**
     * 定义产品的接口
     * */
    interface Product{
        public void method1();
    }
    
    class productA implements Product{
        @Override
        public void method1() {
            System.out.println("productA.method1 excute");
        }
    }
    
    class productA1 implements Product{
        @Override
        public void method1() {
            System.out.println("productA1.method1 excute");
        }
    }
    
    /**
    * 对扩展开放,对修改关闭。
     * 抽象方法,定义公共稳定的逻辑
    * */
    abstract class Application{
        //抽象,由具体类实现
        abstract Product createProduct();
        //获取bean
        Product getObject(){
            Product product = createProduct();
            // ....
            return product;
        }
    
    }
    
    //具体实现类A
    class ConcreteProductA extends Application{
        @Override
        Product createProduct() {
            //..
            return new productA();
        }
    }
    
    //具体实现类A1
    class ConcreteProductA1 extends Application{
        @Override
        Product createProduct() {
            //..
            return new productA1();
        }
    }
  • 相关阅读:
    1.linux6 x86-64 RPM包安装mysql5.7.20
    zepto中的animate
    java开发环境配置
    sql按相似度模糊查询实例
    下载方法收集
    myeclipseBlue6.5破解,运行即可得到key
    浮点数特点
    java进制之间的转换
    java小算法
    Java中的DateFormat用法
  • 原文地址:https://www.cnblogs.com/chenfx/p/14779102.html
Copyright © 2011-2022 走看看