设计模式
文章平均质量分 66
李不言,
这个作者很懒,什么都没留下…
展开
-
JavaScript设计模式 - 组合模式
1. 定义组合模式就是用小的子对象来构建更大的对象,而这些小的子对象本身也许是由更小的“孙对象”构成的。2. 用途组合模式的好处将对象组合成树形结构,以表示“部分-整体”的层次结构组合模式提供了一种遍历树形结构的方案,通过调用组合对象的execute方法,程序会递归调用组合对象下面的叶对象的execute方法通过对象的多态性表现,使得用户对单个对象和组合对象的使用具有一致性利用对象的多态性表现,可以使客户端忽略组合对象和单个对象的不同。在组合模式中,客户将统一地使用组合结构中的所有对原创 2022-02-16 11:11:31 · 514 阅读 · 0 评论 -
JavaScript设计模式 - 命令模式
1. 定义案例:假设有一个快餐店,而我是该餐厅的点餐服务员,那么我一天的工作应该是这样的:当某位客人点餐或者打来订餐电话后,我会把他的需求都写在清单上,然后交给厨房,客人不用关心是哪些厨师帮他炒菜。我们餐厅还可以满足客人需要的定时服务,比如客人可能当前正在回家的路上,要求 1 个小时后才开始炒他的菜,只要订单还在,厨师就不会忘记。客人也可以很方便地打电话来撤销订单。另外如果有太多的客人点餐,厨房可以按照订单的顺序排队炒菜。这些记录着订餐信息的清单,便是命令模式中的命令对象。命令模式是最简原创 2022-02-16 10:56:39 · 342 阅读 · 0 评论 -
JavaScript设计模式 -发布订阅者模式
1. 定义发布订阅者模式又叫观察者模式,他定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得将得到通知案例:小明最近看上了一套房子,到了售楼处之后才被告知,该楼盘的房子早已售罄。好在售楼MM 告诉小明,不久后还有一些尾盘推出,开发商正在办理相关手续,手续办好后便可以购买。但到底是什么时候,目前还没有人能够知道。于是小明记下了售楼处的电话,以后每天都会打电话过去询问是不是已经到了购买时间。除了小明,还有小红、小强、小龙也会每天向售楼处咨询这个问题。一个星期过后,售楼原创 2022-02-15 15:53:52 · 2178 阅读 · 0 评论 -
JavaScript设计模式 -迭代器模式
1. 迭代器模式的简单理解定义:迭代器模式是指提供一种方法,顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。好处:迭代器模式可以把迭代的过程从业务逻辑中分离出来,在使用迭代器之后,即使不关心对象的内部构造,也可以按顺序访问其中的每一个元素一个简单的迭代器const each = function(arg, callback) { for(var i = 0; i < arg.length; i++) { callback(i, arg[i]) }}原创 2022-02-15 15:40:07 · 449 阅读 · 0 评论 -
JavaScript设计模式 - 代理模式
1. 代理模式的简单理解定义:为一个对象提供一个代用品或占位符,以便控制对它的访问代理模式的关键:当客户不方便直接访问一个对象或者不满足需要的时候,提供一个替身对象来控制对这个对象的访问,客户实际上访问的是替身对象。替身对象对请求做出一些处理之后,再把请求转交给本体对象2. 常用的代理模式保护代理虚拟代理2.1 保护代理代理B可以帮本体A过滤掉一些请求,比如有人想通过B送花给A,但是B可以过滤掉送花中年龄大或者比较穷的,这些请求可以直接在代理B处被拒绝掉2.2 虚拟代理虚拟代理把一些开原创 2021-12-09 20:10:44 · 550 阅读 · 0 评论 -
JavaScript设计模式 - 策略模式
1. 策略模式的简单理解定义:多种途径达到同一个目的地案例:1. 如果没有时间但是不在乎钱,可以选择坐飞机2. 如果没有钱,可以选择坐大巴或者火车3. 如果再穷一点,可以选择骑自行车实现:定义一系列的算法,把他们封装起来,并且使他们可以相互替换2. 案例2.1 使用 if else来实现const calculateBouns = function(perfomancelevel, salary) { if (perfomancelevel === 'S') {原创 2021-11-16 23:01:18 · 545 阅读 · 0 评论 -
JavaScript设计模式 - 单例模式
1. 单例模式的简单理解2. 实现单例模式3. 透明的单例模式4. 用代理实现单例模式5. 惰性单例5.1 通用的惰性单例5.2 优化后的惰性单例6. 总结1. 单例模式的简单理解介绍:保证一个类仅有一个实例,并提供一个访问他的全局访问点实现一个标准的单例模式:用一个变量来标志当前是否已经为某个类创建过对象,如果是,则在下一次获取该类的实例时,直接返回之前创建的对象使用场景:当我们单击登录按钮的时候,页面中会出现一个登录浮窗,而这个登录浮窗是唯一的,无论点击多少次登录按钮,这个浮窗都只原创 2021-11-15 22:12:42 · 512 阅读 · 0 评论