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();
        }
    }
  • 相关阅读:
    DHCP服务器
    继承、抽象、多态
    范围随机数Random
    阿里、北理工、清华以及华为的镜像站
    创建kafka生产对象
    kafka消费者的配置
    Kafka 流数据 SQL 引擎 -- KSQL
    认证maven工程
    基础算法
    Java基础
  • 原文地址:https://www.cnblogs.com/chenfx/p/14779102.html
Copyright © 2011-2022 走看看