函数组合和集合管道模式 - Collection Pipeline定义 集合管道是将一些计算转化为一系列操作,每个操作的输出结果都是一个集合,同时该结果作为下一个操作的输入。在函数编程中,通常会通过一系列更小的模块化函数或运算来对复杂运算进行排序,这种方式被称为函数组合。结构中包含的角色Collection 集合对象
最小可表达代码 - Larave
......
350
0
0
2022-08-07
委托模式 - Delegation定义 有两个对象参与(两个对象协同)处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。 委托模式属于行为型模式。许多其他的模式,如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了委托模式。设计的原则和思想解耦委托者与被委托者。不变部分是委托者和被委托者,变化部分是委托者与被委托者之间的协同方式
......
421
0
0
2022-08-07
空对象模式 - Null Object Pattern定义 一个空对象取代NULL对象实例的检查。NULL对象可以在数据不可用的时候提供默认的行为,属于行为型设计模式。结构中包含的角色Resource 抽象资源ConcreteResource 具体资源NullResource 空资源ResourceFactory 资源工厂最小可表达代码 abstrac
......
355
0
0
2022-08-07
过滤器模式 - Filter Pattern定义 这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。 过滤器模式也叫条件模式,过滤器模式是责任链模式的一种衍生模式,属于结构型设计模式。设计的原则和思想解耦的是请求发送对象(触发业务的对象)和请求处理对象(处理业务的对象)。不变部分是请求处理对象,变化部分是请
......
390
0
0
2022-08-07
多例模式 - Multiton Pattern定义多例是单例的一种延伸。是指一个类有多个相同实例,而且该实例都是该类本身。设计的原则和思想解耦了对象的创建和使用。不变部分是使用,变化部分是创建。核心思想是限制对象的数量,并且对对象进行重复使用。一句话概括设计模式一个类有多种形态,并且每一种形态是一个单例。结构中包含的角色Multiton 多例对象最小可表达代
......
372
0
0
2022-08-07
DTM是一套跨语言的分布式事务解决方案,支持4种事务模型(Xa、Tcc、事务消息、Saga),针对分布式事务场景中可能出现的空回滚、悬挂问题,独创了子事务屏障,在大厂均有应用,但已有的php客户端只支持tcc,所以重新开发了这个组件。一、启动本地dtmDTM文档教程git clone https://github.com/yedf/dtm &&
......
407
0
0
2022-08-05
状态模式 - State Pattern定义允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。设计的原则和思想解耦的是对象和状态。不变部分是对象,变化部分是状态。核心思想是不同状态下做的事情也不同。一句话概括设计模式对象的状态改变,行为也要随之改变。结构中包含的角色Context(环境类)State(抽象状态类)ConcreteStat
......
394
0
0
2022-08-04
中介者模式 - Mediator Pattern定义用一个中介对象(中介者)来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。设计的原则和思想解耦的各个对象之间的依赖。不变部分是各个对象之间的依赖关系,变化部分是各个对象所依赖的对象(中介者模式用中介者去替换之前的依赖关系)。核心思想是将网状结构的
......
346
0
0
2022-08-04
责任链模式(Chain of Responsibility Pattern)定义避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。设计的原则和思想解耦的是请求发送对象(触发业务的对象)和请求处理对象(处理业务的对象)。不变部分是请求处理对象,变化部分是请求处理对象之间的关系。核
......
379
0
0
2022-08-04
模板方法模式 - Template Pattern定义定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。设计的原则和思想解耦的是 模板方法(算法)和方法(算法)步骤。不变部分是方法步骤,变化部分是模板方法。核心思想是同一个步骤,不同的事情。一句话概括设计模式父类控制流程,子类负责具
......
389
0
0
2022-08-04
命令模式 - Command Pattern定义将一个请求封装为一个对象,从而让我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。设计的原则和思想解耦的是行为请求(发起)者和行为实现(执行)者。不变部分是行为实现者,变化部分是行为请求者。核心思想是将函数封装成命令对象。一句话概括设计模式调用者通过命令类让接受者执行指令。结
......
339
0
0
2022-08-04
解释器模式 - Interpreter Pattern定义定义一个语言的文法,并且建立一个解释器来解释该语言中的句子。设计的原则和思想解耦的是需要解释的内容和解释文法的方式。不变部分是解释文法的方式,变化部分是需要解释的内容。核心思想是将语法解析拆分到最小单元,然后按照某种文法规则重新组合。一句话概括设计模式用一种类似抽象语法树的表达式去解释一种语言。终结符
......
373
0
0
2022-08-04
观察者模式(Observer Pattern)定义在对象之间定义一种一对多依赖关系,当一个对象状态改变的时候,所有依赖的对象都会得到通知并被自动更新。设计的原则和思想解耦观察者和被观察者。不变部分是观察者和被观察者的关联,变化部分是观察者和被观察者。核心思想是对象之间一对多的关联关系。一句话概括设计模式被观察者的操作,观察者都能监控。结构中包含的角色Subj
......
349
0
0
2022-08-04
访问者模式 - Visitor Pattern定义提供一个作用于某对象结构中的各元素的操作表示,它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。设计的原则和思想对象(稳定的数据结构)与操作(易变的操作)解耦不变部分是对象的数据结构,变化部分是操作。核心思想是同样一件事,不同的人有不同的做法。一句话概括设计模式通过访问者去操作对象的行为。结构
......
343
0
0
2022-08-04
迭代器模式 - Iterator Pattern定义提供一种方法来访问聚合对象,而不用暴露这个对象的内部表示。设计的原则和思想解耦使用者和集合类对象。不变部分是迭代器,变化部分是集合对象。核心思想是让对象能像数组一样能遍历。一句话概括设计模式遍历对象。结构中包含的角色Iterator(抽象迭代器)ConcreteIterator(具体迭代器)Iterator
......
368
0
0
2022-08-04