装饰者模式设计

一、设计模式

javascript里面给我们提供了很多种设计模式:

工厂、桥、组合、门面、适配器、装饰者、享元、代理、观察者、命令、责任链

在前面我们实现了工厂模式和桥模式

工厂模式 :

核心:为了生产对象,实现解耦。

桥接模式 :

(桥接模式是一种既能把两个对象连接在一起,又能避免二者间的强耦合的方法。通过“桥”把彼此联系起来,同时又允许他们各自独立变化)

主要作用:主要作用表现为将抽象与其实现隔离开来,以便二者独立化。

组合模式 :

(组合模式是一种专门为创建Web上的动态用户界面而量身制定的模式。使用这种模式可以用一条命令在多个对象上激发复杂的或递归的行为。这可以简化粘合性代码,使其更容易维护,而那些复杂行为则被委托给各个对象。)

优点 :

1 你可以用同样的方法处理对象的集合与其中的特定子对象。

2 它可以用来把一批子对象组织成树形结构,并且使整棵树都可以被遍历。

场景 :

1 存在一批组织成某种层次体系的对象

2 希望对这批对象或其中的一部分对象实施一个操作。

特点 :

1 组合模式中只有两种类型对象:组合对象、叶子对象

2 这两种类型都实现同一批接口

3 一般我们会在组合对象中调用其方法并隐式调用"下级对象"的方法(这里我们一般采用递归的形式去做)

门面模式

两个作用:

1、简化类的接口

2、消除类与使用它的客户代码之间的耦合

门面模式常常是开发人员最亲密的朋友。它几乎是所有javascript库的核心原则

门面模式的目的是为了让开发人员用更简单的方法调用一些相对复杂或组合的方法,主要就是简化开发的复杂性,提供一个相对容易的API去调用内部的方法供外界去使用,这样程序员开发会变得轻松些,编写一次组合代码后可以反复的去使用它,有助于节省时间和精力

注意:

不要滥用门面模式,所以使用你心仪的门面之前一定要三思而定,搞不好你就会小题大做

适配器设计

1、适配器模式可用来在现有的接口和不兼容的类之间进行适配。
使用这种模式的对象又叫做包装器(wrapper),因为他们是在用一个新的接口包装另一个对象。
借助适配器可以处理一些类与API不匹配、不能一同使用的情况。

2、注意适配器和门面虽然比较类似,但是门面模式只是为了简化一个接口,
它并不是提供额外的选择,适配器则要把一个接口转换为另一个接口,
它并不会滤除某些能力,也不会简化接口。

装饰者模式

是一种为对象添加新特性的技术,它并不适用创建新子类的这种手段。装饰者模式可以用来透明的把原始对象包装在具有同样接口的另一个对象之中。这样我们就可以为对象添加一个方法或者一些行为,然后将方法调用传递给原始对象

特性:

1、实现同样的接口
2、需要有子类

讲解都在代码中:





装饰者设计模式
    


    


你可能感兴趣的:(装饰者模式设计)