代码改变世界

Pro javascript design pattern 读书笔记之 A singleton with private members 之 Comparing the two techniques

2008-10-27 10:35  wlstyle  阅读(143)  评论(0)    收藏  举报

现在重新观察DataParser这个例子,我们以真实的私有成员来实现这个功能,我们没有为私有变量添加一个下划线。而是他他们放入闭包。

Code

 

你通过私有方法和属性的名称来调用他们,你不需要添加this或者GiantCorp.DataParser,在他们的名称之前。他们只是在共有成员中使用。

这个模式有几个比使用下划线的方式的优点。通过将私有成员放在闭包中,你能确保他们不会在对象之外使用。你可以完全自由的改变实现方式而不影响道代码的其它部分。这同样允许你保护和封装数据。虽然单一设计模式很难得以这种方式使用。除非数据只存在一个地方。

使用这种模式,他拥有私有成员所有的有点而没有缺点。因为整个类只实例化一次。这就是使单一设计模式很流行和广泛使用的原因。