工厂模式

  工厂模式(Factory Pattern)是Java中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

  在工厂模式中,创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。

  工厂模式的思路:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。使用过程中做好接口选择。

  优点:1、一个调用者向创建一个对象,只要知道名称就可以了。2、扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。3、屏蔽产品的具体实现,调用者值关心产品的接口。

  缺点:每次增加产品时,都需要增加一个具体类和对象实现工厂,使得系统中类的个数成倍增加,在一定程度上增加了系统的复杂度,同时也增加了系统具体类的依赖。这并不是什么好事。

  使用场景:1、日志记录器:记录可能记录到本地硬盘、系统事件、远程服务器等,用户可以选择记录日志到什么地方。

  作为一种创建类模式,在任何需要生成复杂对象的地方,都可以使用工厂方法模式。复杂对象适合工厂模式,而简单对象,无需使用工厂模式。如果引入工厂模式,会增加系统的复杂度。

  首先由一个工厂类的接口,然后是后边会用到的具体类,这些具体类需要继承这个接口,没有构造方法,再创建一个工厂类用于获取这些具体类的对象,这个工厂类的成员方法根据参数可以获取对应具体类的对象。创建过程就足够了,后期使用只需要哦创建工厂类的对象,就可以去创建具体类的对象了。

最新文章

  1. redirect问题
  2. 实时视频应用之QoS关键技术分析
  3. Oracle执行计划与统计信息的一些总结
  4. 高德地图3D版的使用方法
  5. oracle学习之bulk collect用法
  6. android 自定义组合控件 顶部导航栏
  7. 在Eclipse中查看JDK类库的源代码
  8. Codeforces Round #353 (Div. 2) D. Tree Construction (二分,stl_set)
  9. httpURLConnection-网络请求的两种方式-get请求和post请求
  10. 移动webAPP前端开发技巧汇总2
  11. 思路:controller层:后台如何取值 前端如何给name赋值 例如是id赋值还是自己随意定义
  12. caffe可重入单例机制分析
  13. __ATTR引发的编译错误【原创】
  14. sql server 中进行除法运算时,如何得到结果是小数形式呢?
  15. express package.json解析
  16. Dicom格式文件解析器[转]
  17. 12-5 张雨RTCM3数据解码解不出的原因
  18. JS 随机整数
  19. golang 性能测试pprof
  20. GO语言基础条件、跳转、Array和Slice

热门文章

  1. Spark Mllib里如何删除每一条数据中所有的双引号“”(图文详解)
  2. java threadLocal的初探
  3. C/C++程序员应聘常见面试题深入剖析(1)
  4. Java开发中存在这样的代码,反而影响整体整洁和可读性
  5. Spring AOP初步总结(二)
  6. asp也玩三层架构(有源代码)
  7. iOS 锁的常用方法
  8. Android 6.0动态权限(转)
  9. spring 配置多个properties
  10. Slacklining 2017/2/6