随笔分类 - 设计模式
摘要:所有元素包括类都是统一由个类进行控制、生成、维护、改变状态的,这个类就是中介者 我们看下图没有使用中介者的情况 我们称上图的状态为“互为信息源”,相互之间都能进行通信,这样造成的后果就是增加了代码的耦合性,并且不易于维护 我们可以使用一个中介者进行左右逢源,所有的其他类都是通过中介者来进行互相通信的
阅读全文
摘要:简单工厂 有一个函数能够创建对象,并且这个函数用的是(),而不是通过new得来的,此时这个函数就是工厂函数; 工厂模式是对象的创建模式之一,和传统new创建对象相比;工厂模式使用的是工厂函数来创建对象的。 下面的代码就是简单的工厂的创建 1 <script> 2 function createPer
阅读全文
摘要:就是为子系统中的一组接口提供一个公共出口,定义个一高层接口 外观模式的设计就是可以通过请求外观接口来达到请求访问子系统的目的,也可以选择跳过外观接口而访问子系统 我们来看一个最直观的外观模式的设计 1 <script> 2 function start() { 3 console.log("开始")
阅读全文
摘要:命令模式的本质就是对命令的封装,将发出命令的责任和执行命令的责任区分开; 每一个命令都是一个操作;请求的一方发出请求操作,要求执行一个命令;接收的一方收到请求,执行对应的操作 我们看一个简单的命令模式 1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5
阅读全文
摘要:装饰模式的哲学:不改变原来的类,并且不使用继承,把一个类的方法增强 比如现在有一个学生类,他有一个方法学习,学习内容是html,css,JavaScript,jQuery。小明就是这个学生的实例 1 <script> 2 function Student() { 3 4 } 5 Student.pr
阅读全文
摘要:组合模式就是一组命令的顺序组合,然后形成“宏命令”。所谓的“宏命令”就是命令的命令,也就是命令清单。 组合模式的设计哲学就是将单独的命令通过组合串联起来,形成顺序的程序列表。 1 // 命令清单 2 var biancheng = { 3 execute: function() { 4 consol
阅读全文
摘要:代理英文是proxy,就像经纪人一样,如果有通告需要找到明星,不能直接和明星直接接触,而是要找经纪人,经纪人进行筛选后,然后在和明星进行沟通。经纪人的所作就是代理类的作用 比如小明想送花给小红 下面的代码没有进行任何代理,而是小明直接送给了小红 1 <script> 2 function Flowe
阅读全文
摘要:之前我们学习构造函数的时候,经常会出现一个类,但是这些实例往往只是认为限制的,就是我们不需要多个实例 我们可以限制必须只能有一个实例,如果第二次创建的时候,我们可以抛出错误或者返回第一次的实例 比如下面的伪代码 1 function Person(name,age){ 2 this.name = n
阅读全文
摘要:策略模式 我们在编程的时候,经常会遇到一套算法,具体使用哪个算法需要看情况。但是即使不用这一套算法,也要预先定义。此时为了是这一套算法易于维护,可以使用策略模式 比如说用户输入购买的汽油编号和加油升数,用来显示实时价格 89号汽油 5.35元/升 92号汽油 5.55元/升 95号汽油 5.75元/
阅读全文
摘要:观察者模式 观察者模式也叫做发布-订阅模式,这个设计模式定义了一个1对多的依赖关系。当一个对象的状态发生改变的时候,所有订阅了等等对象都会接到通知 案例-汇率转换 我们要做一个案例,目的就是实现发布-订阅的功能; 我们的人民币是一个发布者,当前只有人民币进行信息的发布,所有的外币,只有接收通知的功能
阅读全文

浙公网安备 33010602011771号