#深入浅出设计模式

设计模式六大原则(一):单一职责原则

单一职责原则定义是:不要存在多于一个导致类变更的原因。通俗地说,即一个类只负责一项职责。单一职责原则针对的问题有一个类T负责两个不同的职责:职责P1和职责P2。当因为职责P1的需求发生改变而需要修改类T的时候,有可能会导致原本运行正常的职责P2功能发生故障。单一职责原则的解决方案遵循单一职责原则,分别建立两个类T1、T...

简说设计模式——解释器模式

  解释器这个名词想必大家都不会陌生,比如编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树。诸如此类的例子也有很多,比如编译器、正则表达式等等。  如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言...
代码星球 代码星球·2020-04-12

设计模式--刘伟(转)

原文:https://blog.csdn.net/lovelion/article/details/17517213    2012年-2013年,Sunny在CSDN技术博客中陆续发表了100多篇与设计模式学习相关的文章,涵盖了七个面向对象设计原则和24个设计模式(23个GoF...
代码星球 代码星球·2020-04-12

深入理解设计模式(一):单例模式

本文首先概述了单例模式,揭示了单例模式的应用场景和优缺点,最后我们给出了单例模式的几种实现方式及注意事项。单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这...

深入浅出讲解:php的socket通信

对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1.         什么是TCP/IP、UDP?2.     ...

设计模式读书笔记-----组合模式

     我们对于这个图片肯定会非常熟悉,这两幅图片我们都可以看做是一个文件结构,对于这样的结构我们称之为树形结构。在数据结构中我们了解到可以通过调用某个方法来遍历整个树,当我们找到某个叶子节点后,就可以对叶子节点进行相关的操作。我们可以将这颗树理解成一个大的容器,容器...

设计模式(一) 策略模式

    序言       最近在看HeadFirst设计模式这本书,看了一点,第一感觉是简单,通俗易懂,层序渐进,基本上稍微耐心一点都看得懂,那么这本书这么多优点,我写博文是为了什么呢,方便自己以后观看吗?那我还不如看一遍书呢,既然书写的那么好,写给别人看?那还不如推荐别人直接去看书呢。写着系列的博文这也没用,那也没用...
代码星球 代码星球·2020-04-11

15分钟带你了解前端工程师必知的javascript设计模式(附详细思维导图和源码)

设计模式是一个程序员进阶高级的必备技巧,也是评判一个工程师工作经验和能力的试金石.设计模式是程序员多年工作经验的凝练和总结,能更大限度的优化代码以及对已有代码的合理重构.作为一名合格的前端工程师,学习设计模式是对自己工作经验的另一种方式的总结和反思,也是开发高质量,高可维护性,可扩展性代码的重要手段.我们所熟知的金典的...

JavaScript设计模式样例二十 —— 中介者模式

中介者模式(MediatorPattern)定义:用来降低多个对象和类之间的通信复杂性。目的:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。场景:MVC框架中的控制器C就是模型M和识图V的中介者。letmediator=(()=>{l...

JavaScript设计模式样例十九 —— 职责链模式

职责链模式(ChainofResponsibilityPattern)定义:为请求创建了一个接收者对象的链。目的:避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。场景:红楼梦中的"击鼓传花"。//采购请求letPurchaseReque...

JavaScript设计模式样例十八 —— 命令模式

命令模式(CommandPattern)定义:请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。目的:将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。场景:在一个快餐店,用户向服务员点餐。服务员将用户的需求记录在清单上。l...

JavaScript设计模式样例十七 —— 迭代器模式

迭代器模式(ItratorPattern)定义:用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。目的:提供一种方法顺序访问一个聚合对象中各个元素,而又无须暴露该对象的内部表示。场景:$.each()for..of。leteach=(arr,callBack)=>{for(leti=0;i<arr....

JavaScript设计模式样例十六 —— 备忘录模式

备忘录模式(MementoPattern)定义:保存一个对象的某个状态,以便在适当的时候恢复对象。目的:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。场景:数据缓存。letgetPageData=(()=>{letcache={}return(page,fn)=>{if(cac...

JavaScript设计模式样例十五 —— 状态模式

状态模式(StatePattern)定义:创建表示各种状态的对象和一个行为随着状态对象改变而改变的context对象。目的:允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。场景:游戏角色有跳跃、移动、射击、蹲下等状态设定,如果用if-else或者switch来进行判断,在遇到组合动作的时候,判断会...

JavaScript设计模式样例十四 —— 观察者模式

观察者模式(ObserverPattern)定义:当一个对象被修改时,则会自动通知它的依赖对象。目的:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。场景:一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知。classSub...
首页上一页...3334353637...下一页尾页