Pro javascript design pattern 读书笔记之 the summary of singleton pattern
2008-10-28 16:31 wlstyle 阅读(230) 评论(0) 收藏 举报
Benefits of eh singleton pattern
单一设计模式的主要好处是有效的组织了你的代码。通过集合相关的属性和方法在一处实现了这个功能,这些代码块不能被多次的实例化。这样就使调试和修改代码简单了。使用一个描述性的命名空间同样使你的代码实现了自我注释和更易于新手阅读和理解。在一个单一对象中封装你的方法可以让他们避免被其它开发者重写。同时避免全局命名空间的混乱。它使你的代码和第三方的库或者广告服务代码分离。使页面整个具有最大的平衡。
更高级版本的单一设计模式能在开发周期中优化你的代码。从而改进最终用户的表现。Lazy instantiation允许你在需要的时候创建一个对象,减少了用户不必要的内存消耗(和潜在带宽)。分支模式可以使你创建一个有效的方法,无论浏览器或者主机环境如何松散。通过在运行的时候通过条件来指定对象,你能为一个特殊的环境创建一个合适的方法。而不需要在每次调用方法的时候浪费循环以便检查主机环境。
Drawbacks of the singleton pattern
通过提供一个访问的入口,单一设计模式潜在的增加了模型之间的耦合。这是主要对这中设计模式主要的抱怨,有时候当直接创建一个类更好的时候,即使这个类只实例化一次。采用这种模式同样使你的代码很难以单元测试因为它潜在地使类耦合在一起。你无法独立测试一个从单一对象中调用方法的类。相反,你必须将单一对象和类作为一个整体进行测试。单一对象最好用来作为命名空间以便实现一系列的方法,在其他的案例中,耦合不是一个很大的问题。
有时候当一个更高级的设计模式更有利于任务。虚拟代理模式可以用来代替lazy loading 单一对象当你需要更好的控制类实例化的方式。了一个真实的对象工厂模式能用来代替分支单一对象(虽然工厂可能也是一个单一对象)。不要害怕研究在这本书中更特别的设计模式。不要决定使用单一设计模式只是因为他已经够好了,确保你选择的设计模式适合你的工作。
Summary
单一设计模式是javascript中最为基础的设计模式,不仅是因为它在本章中提到的很多用处。而且他能以很多中形式进行应用。举个例子,你能创建一个作为对象工厂的单一对象,或者封装所有的子对象在一个单一的对象命名空间中。这本书是关于创建可重用并且模块化代码的书。寻找一种管理和文档化代码的方式是完成目标最大的一步。单一设计模式可以帮助你实现这个目标。通过将你的代码放置在一个单一对象中,你想创建一个能被其他人使用而不必担心重写他们全局变量的API迈出了一大步。这是迈向一个高级javascript开发者的第一步。
浙公网安备 33010602011771号