zoukankan      html  css  js  c++  java
  • 研磨设计模式学习笔记1简单工厂(SimpleFactory)

    需求:实现一个简单工厂,客户端根据需求获取实现类。

    简单工厂优点:

    1. 客户端不需要知道工厂内部实现,然组件外部实现面向接口编程。
    2. 客户端、实现类解耦。

    一、接口及实现类

    //接口
    public interface Api {
        void say();
    }
    //实现类A
    public class ImplA implements Api {
        @Override
        public void say() {
            System.out.println("ImplA");
        }
    }
    //实现类B
    public class ImplB implements Api {
        @Override
        public void say() {
            System.out.println("ImplB");
        }
    }

    二、工厂

    public class Factory {
        public static Api createApi() throws Exception{
            InputStream is = Client.class.getResourceAsStream("peizhi.properties");//配置文件中配置需要的实现类名称
            Properties properties = new Properties();
            properties.load(is);
            String className = (String) properties.get("impl");
            return (Api) Class.forName(className).newInstance();
    
        }
    }
    peizhi.properties内容:impl=pattern.simplefactory.ImplB(包名+实现类名)

    tips:关于加载propertie一些小结 https://www.cnblogs.com/liuboyuan/p/9595412.html

    客户端:

    public class Client {
        public static void main(String[] args) throws Exception {
            Api api = Factory.createApi();
            api.say();//执行结果:ImplB
    
        }
    }
  • 相关阅读:
    添加鼠标右键菜单项(EditPlus为例)
    spring 定时器Quartz
    python脚本基础总结
    python2.7.9基础学习
    Vagrant+virtualBox+pycham+python环境的安装及配置
    python
    spring资料
    Java四种线程池的使用
    echarts学习网站
    hashmap两种遍历方法
  • 原文地址:https://www.cnblogs.com/liuboyuan/p/9595313.html
Copyright © 2011-2022 走看看