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
    
        }
    }
  • 相关阅读:
    rabbitmq使用
    redis
    IO模型与IO复用介绍
    事件驱动与异步IO使用
    协程
    进程
    线程、锁
    paramiko模块与 StringIO模块
    socketserver 编程
    随记
  • 原文地址:https://www.cnblogs.com/liuboyuan/p/9595313.html
Copyright © 2011-2022 走看看