随笔分类 -  设计模式

摘要:中介者模式 如图,左边的这种相互的沟通会非常出杂乱,复杂。严重不符合开放封闭原则,其中一个对象改了,就牵扯到很多的对象。右边的,如果一个对象改了,只要改中介者就行 举个例子:比如买房子,a,b分别是买房子和卖房子的两个人 // 中介者 class Mediator { constructor(a, 阅读全文
posted @ 2019-11-16 21:06 wzndkj 阅读(291) 评论(0) 推荐(0) 编辑
摘要:备忘录模式:随时记录一个对象的状态变化,随时可以恢复之前的某个状态(如撤销功能) // 状态备忘 class Memento { constructor(content) { this.content = content; } getContent() { return this.content; 阅读全文
posted @ 2019-11-16 20:50 wzndkj 阅读(178) 评论(0) 推荐(0) 编辑
摘要:命令模式:执行命令时,发布者和执行者分开(比如老板和服务员,老板说谁谁谁去干什么,然后服务员就去干了,这适合人比较少,一吆喝就都知道了。如果是上千人,这样就不合适了,这个时候需要发布者和执行者分开)。中间加入命令对象,作为中转站。 比如战争片中,将军传递命令 class Receiver { exe 阅读全文
posted @ 2019-11-16 08:17 wzndkj 阅读(244) 评论(0) 推荐(0) 编辑
摘要:class Action { handle() { handle1(); handle2(); handle3(); } handle1() { console.log('1'); } handle2() { console.log('2'); } handle3() { console.log(' 阅读全文
posted @ 2019-11-16 08:00 wzndkj 阅读(305) 评论(0) 推荐(0) 编辑
摘要:策略模式:不同策略分开处理,避免出现大量 if...else 或者 switch...case class User { constructor(type) { this.type = type; } buy() { if (this.type 'ordinary') { console.log(' 阅读全文
posted @ 2019-11-15 07:04 wzndkj 阅读(220) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。
posted @ 2019-11-15 06:51 wzndkj 阅读(3) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。
posted @ 2019-11-15 06:41 wzndkj 阅读(3) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。
posted @ 2019-11-14 07:00 wzndkj 阅读(2) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。
posted @ 2019-11-14 06:45 wzndkj 阅读(4) 评论(0) 推荐(0) 编辑
摘要:状态模式:一个对象有状态变化,每次状态变化都会触发一个逻辑,不能总是用if...else来控制 比如红绿灯 uml类图 代码 // 状态(红灯,绿灯 黄灯) class State { constructor(color) { this.color = color; } // 设置状态 handle 阅读全文
posted @ 2019-11-13 07:20 wzndkj 阅读(644) 评论(0) 推荐(0) 编辑
摘要:迭代器模式:顺序访问一个集合(顺序访问就要求是有序的)。使用者无需知道集合的内部结构(封装) <body> <div id="div1"> <p>jquery each</p> <p>jquery each</p> <p>jquery each</p> </div> <script> var arr 阅读全文
posted @ 2019-11-10 07:27 wzndkj 阅读(163) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。
posted @ 2019-11-07 06:59 wzndkj 阅读(6) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。
posted @ 2019-11-06 06:39 wzndkj 阅读(5) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。
posted @ 2019-11-04 06:58 wzndkj 阅读(7) 评论(0) 推荐(0) 编辑
摘要:装饰器模式:为对象添加新功能,不改变其原有的结构和功能 适配器模式是原有的不能用了,要重新封装接口。装饰器模式是原有的还能用,但是需要新增一些东西来完善这个功能 比如手机壳,手机本身的功能不受影响,手机壳就是手机的装饰器模式 uml类图 代码 class Circle { draw() { cons 阅读全文
posted @ 2019-11-03 10:03 wzndkj 阅读(927) 评论(0) 推荐(0) 编辑
摘要:适配器模式:旧接口格式和使用者不兼容,中间加一个适配转换接口 比如国外的插座跟国内的插座不一样,我们需要买个转换器去兼容。 uml类图 代码 class Adaptee { specificRequest() { return '德国标准的插头'; } } class Target { constr 阅读全文
posted @ 2019-11-02 11:00 wzndkj 阅读(336) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。
posted @ 2019-10-30 06:57 wzndkj 阅读(10) 评论(0) 推荐(0) 编辑
摘要:将new操作单独封装,遇到new时,就要考虑是否该用工厂模式 示例 你去购买汉堡,直接点餐,取餐,没必要自己亲手做(这就是一个初始化实例的封装) 商店要‘封装’做汉堡的工作,做好直接给买者 class Product { constructor(name) { this.name = name; } 阅读全文
posted @ 2019-10-29 07:06 wzndkj 阅读(1335) 评论(0) 推荐(0) 编辑
摘要:第二题 某停车场,分三层,每层100车位 每个车位都能监控到车辆的驶入和离开 车辆进入前,显示每层的空余车辆数量 车辆进入时,摄像头可识别车牌号和时间 车辆出来时,出口显示器显示车牌号和停车时长 题目:画出UML类图 第二题 某停车场,分三层,每层100车位 每个车位都能监控到车辆的驶入和离开 车辆 阅读全文
posted @ 2019-10-28 10:25 wzndkj 阅读(139) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。
posted @ 2019-10-28 06:28 wzndkj 阅读(6) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示