设计模式之原型模式
熟悉JavaScript的同学对于原型的概念可能并不陌生,今天要说的原型模式和这个差不多是类似的,但是还是存在一些不同。原型模式的核心思想是,通过拷贝指定的原型实例(对象),创建跟该对象一样的新对象。简单理解就是克隆指定对象。所有的原型类都必须有一个通用的接口,使得即使在对象所属的...
2024-01-10设计模式之状态模式
定义Allow an object to alter its behavior when its internal state changes.The object will appear to change its class.(当一个对象内在状态改变时允许其改变行为,这个对象看起来像改变了其类。)UML类图角色解释Context,环境,封装各种状态的变化,并且向外部提供所有需要的接口,使得外部不用关注状态的变化,只需要...
2024-01-10设计模式之命令模式
命令模式的类图其中的角色有:Client 客户端。只依赖于调用者Invoker、接收者Receiver、以及Command(网上找的图片这里没有画出来),不用关注接收者如何执行命令,只需要告诉调用者需要执行什么命令,以及会用到什么接收者去执行,但是这里得注意,虽然类图中同时依赖了接收者,但是实践中,通常...
2024-01-10设计模式之组合模式
定义将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。UML类图组合模式有两种不同的实现,一种是安全模式的组合模式,叶子节点没有实现树枝节点独有的方法,UML图为:另一种是透明模式的组合模式,将树枝节点的方法定义在了节点抽象...
2024-01-10设计模式详解
设计模式是什么设计模式是一个通过定义、使用、测试去解决特定问题的方法,是针对软件设计中在给定条件下会重复性发生的问题而提出的一种通用性的可重用解决方案,设计模式不是可以直接转化为代码的完整设计,它是用于描述在不同情况下解决问题的通用方案。设计模式的作用设计模式通过...
2024-01-10设计模式之访问者模式
定义Represent an operation to be performed on the elements of an object structure. Visitor lets you define a new operation without changing the classes of the elements on which it operates. (封装一些作用于某种数据结构中的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。)UML类图角色:Object...
2024-01-10设计模式之责任链模式
定义Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request.Chain the receiving objects and pass the request along the chain until an object handles it.(使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关 系。将这些对象连...
2024-01-10C++设计模式之享元模式
前言无聊的时候,也去QQ游戏大厅玩五子棋或者象棋;作为程序员,看到一个产品,总要去想想它是怎么设计的,怎么完成的,我想这个是所有程序员都会做的事情吧(强迫症???)。有的时候,想完了,还要做一个DEMO出来,才能体现自己的NB,然后还有点小成就感。在玩五子棋或象棋的时候,我...
2024-01-10C++设计模式之代理模式
前言青春总是那样,逝去了才开始回味;大学生活也是在不经意间就溜走了,现在上班的时候,偶尔还会怀念大学时,大家在一起玩游戏的时光。大学喜欢玩游戏,但是可悲的校园网,速度能把人逼疯了;还好,后来搞了一个游戏代理,总算能勉勉强强的玩了两年。时至今日,敲起键盘写设计模式的...
2024-01-10C++设计模式之策略模式
前言刚刚加班回来;哎,公司规定平时加班只有10块钱的餐补;星期六和星期天加班,只给串休假;在国家规定的节假日按照3倍工资发放。那么对于这么多的计算加班费的方法,公司的OA系统是如何进行做的呢?这就要说到今天我这里总结的策略设计模式了。策略模式在GOF的《设计模式:可复用面向对...
2024-01-10C++设计模式之中介者模式
前言我们都知道,这个国际政治是一门很深的学问,不玩政治的人是搞不懂的。那么多的国家,国家之间的关系又及其复杂;就好比现在,美国和中国有经济利益关系,美国又和日本有盟友关系,朝鲜又和中国有说不清道不明的关系;这些复杂的关系,稍微处理不好,就可能引发局部战争,更有可能...
2024-01-10C++设计模式之职责链模式
前言最近心情很差,因为生活,因为工作;所以想请几天假去丽江玩玩。就向项目经理提交了休假申请,我的项目经理向项目主管提交了我的休假申请,项目主管向部门经理提交了我的休假申请;最后,部门经理同意了我的休假申请。是的,一个简单的休假申请,需要这么复杂的流程,这也是一个公...
2024-01-10JAVA设计模式之策略模式
策略模式的定义: 定义一组算法,将每个算法都封装起来,使得它们之间可以相互替换。策略模式让算法独立于调用它的客户端而独立变化。 大白话: 我清楚知道自己身上有几把武器(策略),我会根据不同的情况使用不同的武器(根据情况,切换策略)。 游戏中...
2024-01-10C++设计模式之访问者模式
前言这是23+1(简单工厂模式)之中的最后一个了——访问者模式。访问者模式也是一个比较麻烦的设计模式。我也没有实战经验,对于访问者模式的理解完全来自GOF的《设计模式:可复用面向对象软件的基础》,而这篇文章就是根据对这本书的理解而写出来的。在读《设计模式:可复用面向对象软件的...
2024-01-10老生常谈设计模式之动态代理
一、动态代理概念动态代理分为JDK动态代理和cglib动态代理两种方式。jdk动态代理是由Java内部的反射机制来实现的,cglib动态代理底层则是借助asm来实现的。总的来说,反射机制在生成类的过程中比较高效,而asm在生成类之后的相关执行过程中比较高效(可以通过将asm生成的类进行缓存,这样解决asm...
2024-01-10JS设计模式之单例模式(一)
命名空间单例模式是JavaScript中最常见的一种模式,通过这种模式可以为我们提供一个命名空间,例如jQuery库的命名空间为jQuery或$。命名空间的使用是为了让代码更加整洁,在多人协作开发的情况下,不同的人定义的变量很有可能重复,此时就需要使用命名空间来约束每个人定义的变量,使相同名称...
2024-01-10C语言 设计模式之访问者模式
C语言访问者模式概要:访问者模式,听上去复杂一些。但是,这种模式用简单的一句话说,就是不同的人对不同的事物有不同的感觉。比如说吧,豆腐可以做成麻辣豆腐,也可以做成臭豆腐。可是,不同的地方的人未必都喜欢这两种豆腐。四川的朋友可能更喜欢辣豆腐,江浙的人就可能对臭豆腐更喜...
2024-01-10详解JAVA设计模式之模板模式
在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。介绍意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变...
2024-01-10C#设计模式之单例模式实例讲解
前言最近开始花点心思研究下设计模式,主要还是让自己写的代码可重用性高、保证代码可靠性。所谓设计模式,我找了下定义:是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模...
2024-01-10PHP设计模式之观察者模式实例
首先了解观察者模式的概念:一个对象通过添加一个方法(该方法允许另一个对象,即观察者 注册自己)使本身变得可观察。当可观察的对象更改时,它会将消息发送到已注册的观察者。这些观察者使用该信息执行的操作与可观察的对象无关。结果是对象可以相互对话,而不必了解原因。观察者模式...
2024-01-10PHP常用设计模式之委托设计模式
模式定义委托是对一个类的功能进行扩展和复用的方法。它的做法是:写一个附加的类提供附加的功能,并使用原来的类的实例提供原有的功能。假设我们有一个 TeamLead 类,将其既定任务委托给一个关联辅助对象 JuniorDeveloper 来完成:本来 TeamLead 处理 writeCode 方法,Usage 调用 TeamLead 的该方法,但现...
2024-01-10C# 设计模式之单例模式归纳总结
优缺点 优点:一、实例控制单例模式会阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。二、灵活性因为类控制了实例化过程,所以类可以灵活更改实例化过程。缺点:一、开销虽然数量很少,但如果每次对象请求引用时都要检查是否存在类的实例,将仍...
2024-01-10CSS设计模式之ITCSS的介绍
1、ITCSS和SMACSS其实很像,SMACSS是对CSS做分类处理,而ITCSS是对CSS做分层处理。2、分层是纵向的,从上往下,层层关联的。分层:七层与SMACSS区别:层次分得更细我们可以看到最上层是 Settings,然后是 Tools,依次往下,最后是trumps。越往上它的复用性越好。Settings(设置):预处理程序的变量或方法,如 ...
2024-01-10【php】PHP设计模式之享元模式
享元模式,“享元”这两个字在中文里其实并没有什么特殊的意思,所以我们要把它拆分来看。“享”就是共享,“元”就是元素,这样一来似乎就很容易理解了,共享某些元素嘛。Gof类图及解释GoF定义:运用共享技术有效地支持大量细粒度的对象interface Flyweight{public function operation($extrinsicState) : vo...
2024-01-10【php】PHP设计模式之组合模式
互联网公司流行扁平化管理,也就是管理层级尽量少于或者不超过三层,作为一个底层的码农,你的CEO和你的职级也就相差3层以内。但是很多传统企业,则会有非常深的层级关系,从数据结构看,这种按职能进行分组的组织架构非常像一颗树。而我们今天介绍的组合模式的作用就和这个企业组织架构层...
2024-01-10