子匠_Zijor | 前端开发 / 程序媛 / 潜心学艺。

标签:设计模式

设计模式笔记(五):JavaScript中的装饰者模式

一. 装饰者模式的定义

装饰者模式的定义:动态地给一个对象添加额外的职责,而不会影响从这个类派生的其他对象。

二. 装饰者模式的实现

装饰者模式能够在不改变对象自身的基础上,在程序运行期间给对象动态添加职责。

在JavaScript的实际实现中,可以将本体对象放到装饰者对象中,这些对象以一条链的方式进…

+ 阅读更多

设计模式笔记(四):JavaScript中的中介者模式

一. 中介者模式的定义

中介者模式的定义:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

中介者模式的作用是接触对象与对象之间的紧耦合关系。

二. 中介者模式的实现

在中介者模式中,独立的对象(colleague)之间并不直接通信,而是通过中介者对象。当其…

+ 阅读更多

设计模式笔记(三):JavaScript中的代理模式

一. 代理模式的定义

代理模式的定义:为其他对象提供一种代理,以控制对着这个对象的访问。

在代理模式中,一个对象充当另一个对象的接口。

这种模式看起来像是额外的开销,但是出于性能因素的考虑却是非常有用的。代理充当了本体对象的守护对象,并且试图使本体对象做尽可能少的工作。

二. 代理模式的适用场景

代理模式的适用场景有:

  • 延迟一个大对象的实例化
  • 访问远程对象
  • 访问控制
  • … …

三. 代理模式的实现

+ 阅读更多

设计模式笔记(二):JavaScript中的策略模式

一. 策略模式的定义

策略模式的定义:定义了算法家族,分别封装起来,让它们之间可以相互替换。

策略模式的目的是想将算法的使用与实现分离开来。

二. 策略模式的实现

究其本质,策略模式使用委托去解耦使用它们的算法类。

基于策略模式的程序至少由两部分组成:

  • 第一部分是一组 策略类。策略类封装了具体的算法,并负责具体的计算过程。
  • 第二部分是 环境类 Context。Context接受客户请求,并将请求委托给某一个策略类。

例如:…

+ 阅读更多

设计模式笔记(一):JavaScript中的单例模式

单例模式是一种常见的模式,如果希望系统中一个类只有一个实例,那么单例模式是最好的解决方案。

一. 单例模式的定义

单例模式的定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

二. 单例模式的实现原理

用一个变量来标志当前是否已经为某个类创建过对象。如果是,则在下一次获取该类的实例时,直接返回之前创建的对象。

三. 单例模式的优点

单例模式的优点有:

  • 内存中只有一个对象,节省内存空间;
  • 避免频繁
+ 阅读更多

学习笔记:JavaScript对象创建模式

在JavaScript中创建对象是很容易的,可以使用对象字面量或者构造函数。常用的创建对象的模式有以下几种:

一. 工厂模式

工厂模式抽象了具体对象的过程,用函数来封装以特ing接口创建对象的细节。

如下:

function createAnimal(name, age) {
    var o = new Object();
    o.name = name;
    o.age = age;
    o.sayName = function() {
        alert(this.name);
+ 阅读更多