研磨设计模式学习笔记1--简单工厂(SimpleFactory)
需求:实现一个简单工厂,客户端根据需求获取实现类。
简单工厂优点:
- 客户端不需要知道工厂内部实现,然组件外部实现面向接口编程。
- 客户端、实现类解耦。
一、接口及实现类
//接口 public interface Api {void say(); } //实现类A public class ImplA implements Api {@Overridepublic void say() {System.out.println("ImplA");} } //实现类B public class ImplB implements Api {@Overridepublic 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一些小结
客户端:
public class Client {public static void main(String[] args) throws Exception {Api api = Factory.createApi();api.say();//执行结果:ImplB} }
转载于:https://www.cnblogs.com/liuboyuan/p/9595313.html
研磨设计模式学习笔记1--简单工厂(SimpleFactory)相关推荐
- 设计模式学习笔记——03 简单工厂 工厂方法 抽象工厂
简单工厂 简单工厂模式也成静态工厂模式,但此模式不符合开闭原则,但仍然很常用 适用范围:工厂类需要创建的对象种类比较少,客户端只需要知道传入工厂类的参数,对于如何创建对象(逻辑)不关心 上段代码: p ...
- 大化设计模式学习笔记(简单工厂模式)
实质:生产具有相同逻辑的构造器类,也就是由一个工厂对象决定创建出哪一种产品类的实例 案例:计算器 demo见https://github.com/mrjdrs/sign-model.git
- Head First设计模式读书笔记四 简单工厂 工厂模式 抽象工厂模式
本文示例代码材料源自Head First设计模式 以前整理自己整理的链接: 工厂模式 https://blog.csdn.net/u011109881/article/details/56541580 ...
- 设计模式学习笔记(一)之工厂模式、单例模式
一.工厂模式 (1)简单工厂模式: 1 public interface IProduct { 2 3 public void saleProduct(); 4 5 } 创建一个产品接口,有一个卖产品 ...
- 研磨设计模式学习笔记之装饰器模式
1.装饰器模式定义:动态地给一个对象添加一些额外的功能职责,就增加功能来说,装饰器模式要比生成子类更加灵活. 2.装饰器模式实现:在装饰器模式的实现中,为了能够实现和原来使用被装饰对象的代码无缝隙结合 ...
- 设计模式学习笔记汇总目录
这里的学习笔记包含JavaSE和J2EE两部分,持续更新中! 其中关于学习的参考资料如下: 1.菜鸟设计模式 2.Head First Design Patterns(书.强烈推荐); 3.大话设计模 ...
- 设计模式学习笔记(三)简单工厂、工厂方法和抽象工厂之间的区别
设计模式中的工厂模式(Factory Design pattern)是一个比较常用的创建型设计模式,其中可以细分为三种:简单工厂(Simple Factory).工厂方法(Factory Method ...
- 设计模式学习笔记(三)工厂模式中的简单工厂、工厂方法和抽象工厂模式之间的区别
设计模式中的工厂模式(Factory Design pattern)是一个比较常用的创建型设计模式,其中可以细分为三种:简单工厂(Simple Factory).工厂方法(Factory Method ...
- 设计模式学习笔记-2 创建者模式-工厂方法模式
设计模式学习笔记-2 创建者模式-工厂方法模式 工厂模式介绍 工厂模式又称工厂方法模式,是一种创建型设计模式,其在父类中提供一个创建对象的方法,允许子类决定实例化对象的类型. 这种设计模式使Java开 ...
- 设计模式 - 学习笔记 - 工厂模式Factory Pattern
设计模式 - 学习笔记 - 工厂模式Factory Pattern 1. 简单工厂 1.1 应用场景 1.2 UML 1.3 优劣分析 好处 缺点 1.4 代码示例 抽象产品 AbstractProd ...
最新文章
- 【C++ 语言】容器 ( queue 队列 | stack 栈 | priority_queue 优先级队列 | set 集合 | 容器遍历 | map )
- 计算1至1000间的合数c语言,输出1000以内的素数的算法(实例代码)
- 拥抱.NET Core,学习.NET Core的基础知识补遗
- YAFFS2移植到AliOS Things指南
- java学习笔记16--异常
- 求求你,别再用wait和notify了!
- mysql 列很多_MySQL:多个表还是一个表有很多列?
- arch linux arm下载_linux系统下编译给android JNI调用的Gmssl库
- java io重定向,java中的标准重定向标准IO_java标准IO_java构建器_课课家
- 验证码功能-简单实现
- FPGA学习笔记(四)——引脚分配、AC620开发板连接、测试程序
- 金叉成功率_曝光MACD零轴上的秘密:“0线下方金叉买入”千万别小看,成功率达100%!...
- VITS 语音合成完全端到端TTS的里程碑
- 计算机优化和维护的主要内容,计算机组装与维护(全)
- 倪光南华为鸿蒙,倪光南谈华为鸿蒙:国产鸿蒙操作系统需要生态支持
- Tomcat执行startup.bat出现闪退的可能原因
- 全球50大最重要互联网人物
- linux进程管理杂记(1)
- 【公式编辑测试】解析几何-三角形外心重心垂心内心公式
- 破解一种光盘加密技术
热门文章
- 点击量作弊真的可以检测吗_作弊道德可以使自动驾驶汽车可行吗?
- mysql1232_Mysql执行流程
- python:argsort(返回元素排序后的索引值)
- 关于np.meshgrid
- mysql 组复制详解_MySQL 5.7: 使用组复制(MySQL Group Replication)
- springboot分页展示功能_SpringBoot实战项目(三)用户列表以及分页功能实现
- 【TeeChart .NET教程】(六)使用系列
- nginx 反向代理及负载均衡
- ES6的Set()方法实现数组去重
- 01背包 Codeforces Round #267 (Div. 2) C. George and Job