Trekerz

求知若饥 虚心若愚

JS设计模式16-享元模式

气泡对象池例子

享元模式的基础定义:享元模式Flyweight是一种用于性能优化的模式,如果系统中因为创建了大量类似的对象而导致内存不足或占用过高这种模式就非常有用了。使用场景:第一种是应用在数据层上,主要是应用在内存里大量相似的对象上;第二种是应用在DOM层上,享元可以用在中央事件管理器上用来避免给父容器里的..


JS设计模式15-职责链模式

交押金预定手机

职责链模式的基础定义:职责链模式(Chain of responsibility)是使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。​ 将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。​ 职责链模式的名字非常形象,一系列可能会处理请求的..


JS设计模式14-备忘录模式

分页和撤销例子

备忘录模式的基础定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态。作用:在我们的开发中偶尔会遇到这样一种情况,需要对用户的行为进行撤销。要想实现撤销,首先需要保存软件系统的历史状态,当用户执行撤销时用之前的状态覆盖当前状态。..


JS设计模式13-组合模式

文件扫描例子

组合模式的基础定义:组合模式(Composite)将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。作用:组合模式让你可以优化处理递归或分级数据结构。使用场景:系统目录结构、网站导航结构、文件扫描、DOM的机制,一个DOM节点可以包含子节点..


JS设计模式12-模板方法模式

IT公司面试例子

模版方法模式定义:模板方法模式由二部分组成,第一部分是抽象父类,第二部分是具体实现的子类,一般的情况下是抽象父类封装了子类的算法框架,包括实现一些公共方法及封装子类中所有方法的执行顺序,子类可以继承这个父类,并且可以在子类中重写父类的方法,从而实现自己的业务逻辑。 使用场景: 泡饮品(茶 和 ..


JS设计模式11-访问者模式

访问一个类

访问者模式定义:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 在访问者模式中,主要包括下面几个角色 抽象访问者:抽象类或者接口,声明访问者可以访问哪些元素,具体到程序中就是visit方法中的参数定义哪些对象是可以被访问的。 访问者:..


JS设计模式10-外观模式

兼容不同浏览器

外观模式基础定义:外观模式(Facade)为子系统中的一组接口提供了一个一致的界面,此模块定义了一个高层接口,这个接口使得这一子系统更加容易使用。 外观模式不仅简化类中的接口,而且对接口与调用者也进行了解耦。外观模式经常被认为开发者必备,它可以将一些复杂操作封装起来,并创建一个简单的接口用于调用..


JS设计模式9-迭代器模式

不同浏览器中的上传方法

迭代器模式介绍定义:迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。 使用的好处:迭代器模式可以把迭代的过程从业务逻辑中分离出来,在使用迭代器模式之后,即使不关心对象的内部构造,也可以按顺序访问其中的每个元素。 先看一个 jquery 迭代器: $.e..