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

简单工厂优点:

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

一、接口及实现类

//接口
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)相关推荐

  1. 设计模式学习笔记——03 简单工厂 工厂方法 抽象工厂

    简单工厂 简单工厂模式也成静态工厂模式,但此模式不符合开闭原则,但仍然很常用 适用范围:工厂类需要创建的对象种类比较少,客户端只需要知道传入工厂类的参数,对于如何创建对象(逻辑)不关心 上段代码: p ...

  2. 大化设计模式学习笔记(简单工厂模式)

    实质:生产具有相同逻辑的构造器类,也就是由一个工厂对象决定创建出哪一种产品类的实例 案例:计算器 demo见https://github.com/mrjdrs/sign-model.git

  3. Head First设计模式读书笔记四 简单工厂 工厂模式 抽象工厂模式

    本文示例代码材料源自Head First设计模式 以前整理自己整理的链接: 工厂模式 https://blog.csdn.net/u011109881/article/details/56541580 ...

  4. 设计模式学习笔记(一)之工厂模式、单例模式

    一.工厂模式 (1)简单工厂模式: 1 public interface IProduct { 2 3 public void saleProduct(); 4 5 } 创建一个产品接口,有一个卖产品 ...

  5. 研磨设计模式学习笔记之装饰器模式

    1.装饰器模式定义:动态地给一个对象添加一些额外的功能职责,就增加功能来说,装饰器模式要比生成子类更加灵活. 2.装饰器模式实现:在装饰器模式的实现中,为了能够实现和原来使用被装饰对象的代码无缝隙结合 ...

  6. 设计模式学习笔记汇总目录

    这里的学习笔记包含JavaSE和J2EE两部分,持续更新中! 其中关于学习的参考资料如下: 1.菜鸟设计模式 2.Head First Design Patterns(书.强烈推荐); 3.大话设计模 ...

  7. 设计模式学习笔记(三)简单工厂、工厂方法和抽象工厂之间的区别

    设计模式中的工厂模式(Factory Design pattern)是一个比较常用的创建型设计模式,其中可以细分为三种:简单工厂(Simple Factory).工厂方法(Factory Method ...

  8. 设计模式学习笔记(三)工厂模式中的简单工厂、工厂方法和抽象工厂模式之间的区别

    设计模式中的工厂模式(Factory Design pattern)是一个比较常用的创建型设计模式,其中可以细分为三种:简单工厂(Simple Factory).工厂方法(Factory Method ...

  9. 设计模式学习笔记-2 创建者模式-工厂方法模式

    设计模式学习笔记-2 创建者模式-工厂方法模式 工厂模式介绍 工厂模式又称工厂方法模式,是一种创建型设计模式,其在父类中提供一个创建对象的方法,允许子类决定实例化对象的类型. 这种设计模式使Java开 ...

  10. 设计模式 - 学习笔记 - 工厂模式Factory Pattern

    设计模式 - 学习笔记 - 工厂模式Factory Pattern 1. 简单工厂 1.1 应用场景 1.2 UML 1.3 优劣分析 好处 缺点 1.4 代码示例 抽象产品 AbstractProd ...

最新文章

  1. 【C++ 语言】容器 ( queue 队列 | stack 栈 | priority_queue 优先级队列 | set 集合 | 容器遍历 | map )
  2. 计算1至1000间的合数c语言,输出1000以内的素数的算法(实例代码)
  3. 拥抱.NET Core,学习.NET Core的基础知识补遗
  4. YAFFS2移植到AliOS Things指南
  5. java学习笔记16--异常
  6. 求求你,别再用wait和notify了!
  7. mysql 列很多_MySQL:多个表还是一个表有很多列?
  8. arch linux arm下载_linux系统下编译给android JNI调用的Gmssl库
  9. java io重定向,java中的标准重定向标准IO_java标准IO_java构建器_课课家
  10. 验证码功能-简单实现
  11. FPGA学习笔记(四)——引脚分配、AC620开发板连接、测试程序
  12. 金叉成功率_曝光MACD零轴上的秘密:“0线下方金叉买入”千万别小看,成功率达100%!...
  13. VITS 语音合成完全端到端TTS的里程碑
  14. 计算机优化和维护的主要内容,计算机组装与维护(全)
  15. 倪光南华为鸿蒙,倪光南谈华为鸿蒙:国产鸿蒙操作系统需要生态支持
  16. Tomcat执行startup.bat出现闪退的可能原因
  17. 全球50大最重要互联网人物
  18. linux进程管理杂记(1)
  19. 【公式编辑测试】解析几何-三角形外心重心垂心内心公式
  20. 破解一种光盘加密技术

热门文章

  1. 点击量作弊真的可以检测吗_作弊道德可以使自动驾驶汽车可行吗?
  2. mysql1232_Mysql执行流程
  3. python:argsort(返回元素排序后的索引值)
  4. 关于np.meshgrid
  5. mysql 组复制详解_MySQL 5.7: 使用组复制(MySQL Group Replication)
  6. springboot分页展示功能_SpringBoot实战项目(三)用户列表以及分页功能实现
  7. 【TeeChart .NET教程】(六)使用系列
  8. nginx 反向代理及负载均衡
  9. ES6的Set()方法实现数组去重
  10. 01背包 Codeforces Round #267 (Div. 2) C. George and Job