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();
        }
    }
  • 相关阅读:
    Linux中搭建Maven私服
    NIO类库
    JAVA网络通信IO-NIO-AIO-Netty
    栈和队列
    JAVA四类八种基本数据类型
    JAVA基础—线程池
    vue 数组push元素 视图没更新
    小程序♥云开发
    vue2.0 transition 手风琴
    element-ui 表格翻页多选后仍然记忆所选项,数据回显
  • 原文地址:https://www.cnblogs.com/chenfx/p/14779102.html
Copyright © 2011-2022 走看看