File tree Expand file tree Collapse file tree 1 file changed +10
-11
lines changed
Expand file tree Collapse file tree 1 file changed +10
-11
lines changed Original file line number Diff line number Diff line change @@ -612,37 +612,36 @@ JavaScript没有类,所以一字一句地说单例的定义并没有什么意
612612
613613如你所见,` validator ` 对象是通用的,在所有的需要验证的场景下都可以保持这个样子。改进它的办法就是增加更多类型的检查。如果你将它用在很多页面上,那么很快你就会有一个非常好的验证类型的集合。然后在新的使用场景下使用时你需要做的仅仅是配置` validator ` 然后调用` validate() ` 方法。
614614
615- <a name =" a15 " ></a >
616615## 外观模式
617616
618- 外观模式是一种很简单的模式,它只是为对象提供了更多的可供选择的接口。使方法保持短小而不是处理太多的工作是一种很好的实践。在这种实践的指导下,你会有一大堆的方法,而不是一个有着非常多参数的uber方法 。有些时候,两个或者更多的方法会经常被一起调用。在这种情况下,创建另一个将这些重复调用包裹起来的方法就变得意义了。
617+ 外观模式是一种很简单的模式,它只是为对象提供了更多的可供选择的接口。使方法保持短小而不是处理太多的工作是一种很好的实践。在这种实践的指导下,你会有一大堆的方法,而不是一个有着非常多参数的 ` uber ` 方法 。有些时候,两个或者更多的方法会经常被一起调用。在这种情况下,创建另一个将这些重复调用包裹起来的方法就变得意义了。
619618
620- 例如,在处理浏览器事件的时候,有以下的事件 :
619+ 例如,在处理浏览器事件的时候,有以下的方法 :
621620
622- - stopPropagation()
621+ - ` stopPropagation() `
623622
624623 阻止事件冒泡到父节点
625- - preventDefault()
624+ - ` preventDefault() `
626625
627626 阻止浏览器执行默认动作(如打开链接或者提交表单)
628627
629628这是两个有不同目的的相互独立的方法,他们也应该被保持独立,但与此同时,他们也经常被一起调用。所以为了不在应用中到处重复调用这两个方法,你可以创建一个外观方法来调用它们:
630629
631630 var myevent = {
632- // ...
631+ // ……
633632 stop: function (e) {
634633 e.preventDefault();
635634 e.stopPropagation();
636635 }
637- // ...
636+ // ……
638637 };
639638
640639外观模式也适用于一些浏览器脚本的场景,即将浏览器的差异隐藏在一个外观方法下面。继续前面的例子,你可以添加一些处理IE中事件API的代码:
641640
642641 var myevent = {
643- // ...
642+ // ……
644643 stop: function (e) {
645- // others
644+ // 其它浏览器
646645 if (typeof e.preventDefault === "function") {
647646 e.preventDefault();
648647 }
@@ -657,10 +656,10 @@ JavaScript没有类,所以一字一句地说单例的定义并没有什么意
657656 e.cancelBubble = true;
658657 }
659658 }
660- // ...
659+ // ……
661660 };
662661
663- 外观模式在做一些重新设计和重构工作时也很有用。当你想用一个不同的实现来替换某个对象的时候,你可能需要工作相当长一段时间 (一个复杂的对象),与此同时,一些使用这个新对象的代码也在被同步编写。你可以先想好新对象的API,然后使用新的API创建一个外观方法在旧的对象前面 。使用这种方式,当你完全替换到旧的对象的时候,你只需要修改少量客户代码,因为新的客户代码已经是在使用新的API了 。
662+ 外观模式在做一些重新设计和重构工作时也很有用。当你想用一个不同的实现来替换某个对象的时候,你可能需要花相当长一段时间才能完成 (一个复杂的对象),与此同时,一些使用这个新对象的代码也在被同步编写。你可以先想好新对象的API,然后在旧的对象前面使用新的API创建一个外观方法 。使用这种方式,当你完全替换掉旧的对象的时候,你只需要修改少量的调用代码,因为新的代码已经是在使用新的API了 。
664663
665664<a name =" a16 " ></a >
666665## 代理模式
You can’t perform that action at this time.
0 commit comments