设计模式
布鲁斯1990
专注于微服务,DevOps, Linux
Github: https://github.com/Guilai1990/
展开
-
设计模式概览
面向对象的分析设计会根据一些原则进行设计,以下是一些常见的设计原则。常见的面向对象设计原则 单一职责原则SRP(Single Responsibility Principle: 就是说一个类仅有一个引起它变化的原因。如果一个类有多个引起它变化的原因,那也就意味着这个类有多个职责,把多个职责耦合在一起了。 开放-关闭原则OCP(Open-Closed Principle):就是说...原创 2019-05-05 19:29:37 · 167 阅读 · 0 评论 -
设计模式——职责链模式
定义:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一线,并沿着这条链传递该请求,直到有一个对象处理它为止。职责链模式UML图示例代码如下:/*** 职责的接口,也就是处理请求的接口*/public abstract class Handler { /** * 持有后继的职责对象 */ protected...原创 2019-05-05 21:45:39 · 175 阅读 · 0 评论 -
设计模式——原型模式
定义:用原型实例指定创建对象,并通过拷贝这些原型创建新的对象原型模式UML图Prototype: 声明一个克隆自身的接口,用来约束想要克隆自己的类,要求它们都要实现这里定义的克隆方法。ConcretePrototye: 实现Prototype接口的类,这些类真正实现了克隆自身的功能Client: 使用原型的客户端,首先要获取到原型实例对象,然后通过原型实例克隆自身来创建新的对象实例。...原创 2019-05-07 22:59:30 · 111 阅读 · 0 评论 -
设计模式——外观模式
定义:为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用外观模式UML图/*** A模块的接口*/public interface AModuleApi { /** * 示意方法,A模块对外的一个功能方法 */ public void testA();}public class AModu...原创 2019-05-15 19:33:30 · 88 阅读 · 0 评论 -
设计模式——建造者模式
定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示生成器模式UML图Builder: 建造者接口,定义创建一个Product对象所需的各个部件的操作ConcreteBuilder: 具体的建造者实现,实现各个部件的创建,并负责组装Product对象的各个部件,同时还提供一个让用户获取组装完成后的产品对象的方法Director: 指导者,也被成为导向者,主...原创 2019-05-16 00:34:29 · 90 阅读 · 0 评论 -
设计模式——观察者模式
定义:定义对象间的一种一对多的依赖关系。当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。观察者模式UML图Subject: 目标对象,通常具有如下功能一个目标可以被多个观察者观察目标提供观察者注册和退订的维护当目标的状态发生变化时,目标负责通知所有注册的、有效的观察者Observer: 定义观察者的接口,提供目标通知时对应的更新方法,这个更新方法进行相应的...原创 2019-05-16 01:09:15 · 132 阅读 · 0 评论 -
设计模式——命令模式
定义:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。命令模式UML图Command: 定义命令的接口,声明执行的方法ConcreteCommand: 命令接口实现对象,是“虚”的实现;通常会持有接收者,并调用接收者的功能来完成命令要执行的操作。Receiver: 接收者,真正执行命令的对象。任何类都可能成为一个接收者...原创 2019-05-16 01:18:12 · 172 阅读 · 0 评论 -
设计模式——装饰模式
定义:动态地给一个对象添加一个额外的职责。就增加功能来说,装饰模式比生成子类更为灵活。装饰者模式UML图Component: 组件对象的接口,可以给这些对象动态地添加职责ConcreteComponent:具体的组件对象,实现组件对象接口,通常就是被装饰器装饰的原始对象,也就是可以给这个对象添加职责Decorator: 所有装饰器的抽象父类,需要定义一个与组件接口一致的接口,并持有一...原创 2019-05-16 01:24:37 · 70 阅读 · 0 评论