Z.K.Blog
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于

单例模式

单例模式定义保证一个类只创建一个实例,并能够让它被全局访问到有一些对象往往只需要一个,比如线程池,全局缓存,浏览器中的 window 对象等,在 JS 开发中,单例模式的用途同样非常广泛,比如,当单击登录按钮的时候,页面中会出现一个登录浮窗,而这个登录浮窗是唯一的,无论单击多少次登录按钮,这个浮窗都只会被创建一次,那么这个登录浮窗就适合用单例模式来创建单例模式是一种非常实用的模式,特别是惰性单例技
2023-11-24
Web -- Knowledge is infinite > 编程思想 > 设计模式
#设计模式

命令模式

命令模式定义假设有一个快餐店,而我是该餐厅的点餐服务员,那么我一天的工作应该是这样的,当某位客人点餐或者打来订餐电话后,我会把他的需求都写在清单上,然后交给厨房,客人不用担心是哪些厨师帮他们炒菜,我们餐厅还可以满足客人需要的定时服务,比如客人可能当前正在回家的路上,要求 1 个小时后才开始炒他的菜,只要订单还在,厨师就不会忘记,客人也可以很方便的打电话来撤销订单,另外如果有太多客人点餐,厨房也可以
2023-11-24
Web -- Knowledge is infinite > 编程思想 > 设计模式
#设计模式

模板方法模式

模板方法模式定义模板方法模式是一种只需使用继承就可以实现的非常简单的模式模板方法模式由两部分组成: 抽象父类 具体的实现子类 通常在抽象父类中封装了子类的算法结构框架,包括实现一些公共方法以及封装子类中所有方法的执行顺序,子类通过继承这个抽象类,也继承了整个算法结构,并且可以选择重写父类方法假如有一些平行的子类,各个子类之间有一些相同的行为,也有一些不同的行为,如果相同和不同的行为都混合在各个
2023-11-24
Web -- Knowledge is infinite > 编程思想 > 设计模式
#设计模式

状态模式

状态模式定义状态模式的关键是区分事物内部的状态,事物内部状态的改变往往会带来事物的行为改变“允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类”逗号前的意思是将状态封装成独立的类,并将请求委托给当前的状态对象,当对象的内部状态改变时,会带来不同的行为变化,比如点灯开关可以说明,在 off 和 on 这两种不同的状态下,我们点击同一个按钮,得到的行为反馈是截然不同的逗号后面是从客
2023-11-24
Web -- Knowledge is infinite > 编程思想 > 设计模式
#设计模式

策略模式

策略模式定义定义一系列算法,把它们一个个封装起来,并且使它们可以相互替换,以通过不同策略实现一个功能比如:你需要去一个地方,你可以通过坐飞机、坐车、或者骑自行车去,这三者都可以完成去这个地方的功能,使用的方法却不同,具体要使用使用哪种方法得根据你的时间和金钱来决定,可以动态根据时间和金钱进行判断出最优选择,这就是策略模式 优点 策略模式利用组合、委托和多态等技术和思想,可以有效地避免多重条件选择语
2023-11-24
Web -- Knowledge is infinite > 编程思想 > 设计模式
#设计模式

组合模式

组合模式定义地球和一些其他行星围绕着太阳旋转,一个原子中,有许多电子围绕着原子核旋转,可以想象,太阳系也许是一个更大世界里的一个原子,地球只是围绕太阳旋转的一个电子,而我们身上的每个原子又是一个星系,原子核就是这个星系中的恒星,电子是围绕着恒星旋转的行星,一个电子中也许还包含了另一个宇宙,虽然这个宇宙还不能被显微镜看到,但可能真实存在也许这个想法有些逆天,但在程序设计中,也有一些和“事物是由相似的
2023-11-24
Web -- Knowledge is infinite > 编程思想 > 设计模式
#设计模式

职责链模式

职责链模式定义使(或创建)多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,知道有一个对象处理它为止职责链模式的名字非常形象,一系列可能会处理请求的对象被连成一条链,请求在这些对象之间依次传递,知道遇到一个可以处理它的对象 现实用例如果早高峰能顺利挤上公交车的话,那么估计这一天都会过的很开心,因为公交车上人实在太多了,经常上车后找不
2023-11-24
Web -- Knowledge is infinite > 编程思想 > 设计模式
#设计模式

装饰者模式

装饰者模式定义装饰者模式能够在不改变对象自身的基础上,在程序运行期间给对象动态的增加职责JS 中可以通过高阶函数来实现装饰者模式 123456789101112function getUserInfo( userId ) { console.log("我获取了用户的信息通过userId"); return `用户信息:${userId} ...
2023-11-24
Web -- Knowledge is infinite > 编程思想 > 设计模式
#设计模式

观察者模式(发布订阅)

观察者模式(发布订阅)定义发布订阅模式又叫观察者模式,它定义了对象间的一种一对多的依赖关系,当一个对象的状态改变时,所有依赖于(订阅)它的对象都将得到通知,在 JS 中,我们一般用事件模型回调来替代传统的发布订阅模式可以用来通信,和同步状态更新,架构上来看不管是 MVC 还是 MVVM 都少不了发布订阅的影子 优点 时间上的解耦 对象之间的解耦 缺点 创建订阅者本身要消耗一定的时间和内存,当订阅
2023-11-24
Web -- Knowledge is infinite > 编程思想 > 设计模式
#设计模式

迭代器模式

迭代器模式定义迭代器模式是提供一种方法,可以顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示,迭代器模式可以把迭代的过程从业务逻辑中分离出来,在使用迭代器模式之后,即使不关心对象的内部构造,也可以按顺序访问其中的每个元素
2023-11-24
Web -- Knowledge is infinite > 编程思想 > 设计模式
#设计模式
1…678910

搜索

京ICP备2023014619号