javascript学习(11)——[设计模式]工厂模式
2014-01-05 16:06 低调de草原狼 阅读(156) 评论(0) 编辑 收藏 举报其实学过java的人基本都知道,工厂模式,我们是基本每天都在用,只不过工厂模式也分为几种情况:简单工厂,抽象工厂和智能工厂。
简单工厂其实,大家时时刻刻都在用,个人理解,当我们在一个函数中调用另一个函数的时候,我们可以简单理解为是一种简单工厂的应用,当然工厂模式的定义并非如此,我们看到很多书中,对工厂模式的定义是要都是大概这么一种方向,就是工厂模式必须产生对象,或者是以产生对象为目的。
借此,我们就引出我个人对设计模式的看法,我们在接下去谈设计模式的时候,这里首先需要明确小弟的一些看法,
首先,设计模式是一种思想,思想这种东西,不必太纠结于定义是什么,小弟并没有太多时间去评价中国教育体制的问题,但是我们必须要明确的是思想绝不能禁锢,当然我也有很多观点可能并不正确,但是,这正是我们需要提高的地方;
其次,设计模式既然是一种思想,我这里并不想从代码的角度去说明它,旨在说明其思想即可,这里将用最少的篇幅去介绍这几种设计模式的思想层面的理解和其在现实生产中需要在什么地方应用;
再者,我们这里也是避免了用大篇幅就说明一些东西,到最后得出一个什么什么样的结论,我这里就用最简单的话语,去解释这一看上去非常神秘的设计模式,旨在让大家用最短的时间去领会这些设计模式,并且,如果当你想应用的实践中的时候,最起码已经知道其思想,和在什么地方应该去应用它,那么,这个时候,我个人建议,你应该去深入的研究,这里并不适合你去做深入的研究,当然,你可以在留言的地方进行留言,我们一起讨论,总之,在博客中,我就不做详细的阐述了。
好的,我们闲话少叙,进入本次博客的主题:工厂模式
工厂模式分为三种:
简单工厂、抽象工厂、智能工厂
在前文中提到的内容,我们这里就不累述,这里主要说下,工厂模式,是为了能够更好的包装和抽象对象生产的这么一种方式。工厂的目的在于判别接口最终被那个类所实现,产生实例的过程不再用new关键字,最终是类与类直接实现松耦合的目的,这也是为了我们以后更方面的维护代码所做的工作。
真正意义的工厂:真正的JS工厂不是利用另外一个类来初始对象,, 而是使用一个子类按照相应的定义来完成类初始化任务。
最简单的例子,我们抽象接口和实现类都实现同样的接口,在具体实现类中实现具体的代码。
这里再次给一个定义:工厂是一个把成员变量初始话的任务交给子类中进行的类
低耦合,高内聚是工厂模式的初衷,这里,我个人并不推荐什么情况下都用工厂模式,因为任何一个设计模式都只会让程序更复杂,如果用不好的话,相反会适得其反,所以,当我们项目并不是特别大的时候,并不适合用工厂模式,相反,我们用最直接的new出对象来是最好的解决方案。
这里貌似谈到了中庸的思想啊,没有最好,只有最适合,所以各位根据具体情况,具体分析吧。