自己对于工厂模式的理解
2015-10-18 16:26
295 查看
首先说一下封装,面向对象的特点中,其中有一个就是封装,当然这里指的是类的封装。
工厂模式其实就有点像“封装”概念的扩展,这里当然不是指类的封装,而是指“创建对象”这一过程的封装,即把创建对象的过程都封装在一个工厂里,换句话说:工厂的职能就是创建对象。
工厂模式的好处就是把每个角色,说白了就是每一部分代码的职责分的很明确,调用者(或者成为消费者)就是调用者,他接收到的就是一个父类;工厂就是工厂,它就是用来创建对象;而类就是一个个产品。当有新的产品时,只需要增加相应的类,以及在工厂里“造”出来就可以了,这样可以降低代码间的耦合程度。如果不使用工厂模式,那么就需要调用者自己去创建对象,此时消费者又成了生产者。
总之一句话,工厂模式的作用就是让工厂来造产品,也就是让工厂来创建对象,而不是在项目的任意地方都可以创建对象。
那么什么时候使用工厂模式呢?
当我们不知道要创建哪个子类,或者要根据用户的输入来创建子类的时候就可以考虑使用工厂模式。此时用户接收到的永远都是一个父类对象,而这个父类对象里面的装的就是工厂里面造出来的对应的子类对象。
工厂模式其实就有点像“封装”概念的扩展,这里当然不是指类的封装,而是指“创建对象”这一过程的封装,即把创建对象的过程都封装在一个工厂里,换句话说:工厂的职能就是创建对象。
工厂模式的好处就是把每个角色,说白了就是每一部分代码的职责分的很明确,调用者(或者成为消费者)就是调用者,他接收到的就是一个父类;工厂就是工厂,它就是用来创建对象;而类就是一个个产品。当有新的产品时,只需要增加相应的类,以及在工厂里“造”出来就可以了,这样可以降低代码间的耦合程度。如果不使用工厂模式,那么就需要调用者自己去创建对象,此时消费者又成了生产者。
总之一句话,工厂模式的作用就是让工厂来造产品,也就是让工厂来创建对象,而不是在项目的任意地方都可以创建对象。
那么什么时候使用工厂模式呢?
当我们不知道要创建哪个子类,或者要根据用户的输入来创建子类的时候就可以考虑使用工厂模式。此时用户接收到的永远都是一个父类对象,而这个父类对象里面的装的就是工厂里面造出来的对应的子类对象。
相关文章推荐
- redhat note
- ANDROID L——RecyclerView,CardView进口和使用(Demo)
- Microsoft visual Studio 2010 下 DirectX SDK 安装配置详细过程
- lintcode 容易题:Reverse Linked List 翻转链表
- 【C语言】 杀人凶手问题
- VS2012实现C++与Lua交互
- Android基础入门教程——10.2 SmsManager(短信管理器)
- LaTeX教程:30分钟入门
- 输入一个浮点小数, 将其按4舍5入转换成整数, 并显示
- Oracle中的length()与lengthb()的区别 ?
- MyViewPagerAdpter 和 MyFragmentPagerAdapter
- Python2.7 语言简介
- ibatis笔记小结及select @@IDENTITY as value
- storm社区相关网站和资料
- 存储过程和函数的区别
- 源代码修改错,导致ecshop后台管理员权限显示空白
- 在Eclipse添加Android兼容包( v4、v7 appcompat )
- Next Permutation
- File
- 数据结构与算法之栈