设计模式
设计模式之禅一书的整理总结
Leo木
这个作者很懒,什么都没留下…
展开
-
设计模式之门面模式
文章目录1、定义2、形式3、优缺点4、使用场景5、小结1、定义门面模式(Facade Pattern):门面模式又被称为外观模式,它要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。该模式提供了一个高层次的接口,使得子系统更易使用。2、形式门面模式通用类图如下所示:其中:Facade为门面角色,知晓子系统的所有功能和责任,供客户端进行调用。该角色实际为一个委托类,将客户端发出的请求委派到相应的子系统去进行处理。Subsystem为子系统角色,子系统可以同时有一个或多个,门面对于原创 2020-12-06 16:54:33 · 502 阅读 · 0 评论 -
设计模式之观察者模式
文章目录1、定义2、形式3、优缺点4、使用场景5、小结1、定义观察者模式(Observer Pattern):观察者模式又被称为发布订阅模式,它定义了对象间一种一对多的依赖关系,使得每当一个对象改变状态,所有依赖于它的对象都会得到通知并被自动更新。2、形式观察者模式通用类图如下所示:其中,Subject为被观察者,一般是抽象类或实现类,其定义了观察者必须实现的职责,它必须能够动态的增加、取消观察者(管理观察者并通知观察者)。Observer为观察者,观察者接收到消息后,会进行update操原创 2020-12-01 09:32:02 · 171 阅读 · 0 评论 -
设计模式之适配器模式
文章目录1、定义2、形式3、优缺点4、使用场景5、扩展6、小结1、定义适配器模式(Proxy Pattern):将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。2、形式通用类图如下所示:其中,Target为目标角色,是转换的目标接口Adaptee为源角色,是将被转换成目标角色的类或对象Adapter为适配器角色,定义了将源角色转换为目标角色的方式,一般通过继承或是类关联。对应代码如下:Targetpublic inter原创 2020-11-27 11:01:34 · 170 阅读 · 0 评论 -
设计模式之代理模式
1、定义代理模式(Proxy Pattern):为其他对象提供一种代理以控制这个对象的访问。2、形式代理模式有好几种不同的形式,下面我们针对不同的形式分别进行讲解。1)静态代理通用类图如下所示:其中Subject为抽象主题角色,定义了一个普通的业务类型,既可以是抽象类也可以是接口;RealSubject为具体主题角色,是被代理的角色,也是业务逻辑的具体执行者;Proxy为代理主题角色,负责代理真实角色,该类把所有抽象主题定义的方法限制委托给真实主题角色实现,并在真实主题角色处理完毕前后做原创 2020-11-21 09:41:55 · 115 阅读 · 0 评论 -
设计模式之建造者模式
1、定义建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。2、形式建造者模式通用类图如下所示:类图中各类含义为:Product为产品类,通常是实现了模板方法模式的类。Builder为抽象建造者,由其子类去实现实际产品的组建。ConcreteBuilder为具体建造者,实现抽象类定义的所有方法,并返回一个组建好的对象。Director为导演类,负责安排已有模块的顺序,然后告诉Builder开始建造。通用源码如下:Pro原创 2020-11-16 11:25:44 · 80 阅读 · 0 评论 -
设计模式之模板方法模式
1、定义模板方法模式(Template Method Pattern):定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可冲定义该算法的某些特定步骤。2、形式模板方式模式的通用类图如下所示:类图比较简单,仅仅使用了继承机制。其中,AbstractClass为抽象模板,包含了两类方法:基本方法:由子类实现的方法,并在模板方法被调用模板方法:可以有一至多个,一般是一个具体方法,也就是一个框架,实现对基本方法的调度以完成固定的逻辑。ConcreteCl原创 2020-11-14 11:00:20 · 106 阅读 · 0 评论 -
设计模式之抽象工厂模式
1、定义抽象工厂模式(Abstract Factory Pattern):为创建一组相关或相互依赖的对象提供一个接口,并且无需指定它们的具体类。2、形式抽象工厂模式通用类图如下所示:从类图上来看该模式跟工厂模式似乎没有差别,但抽象工厂模式实际上是工厂模式的升级版。在存在多个业务品种、业务分类时,通过抽象工厂模式产生需要的对象是一种非常好的解决方式。抽象工厂一般都定义了多个工厂类去管理同一类业务对象,精化后的类图如下:对应的通用源码为:AbstractProductApublic abst原创 2020-11-10 11:03:55 · 309 阅读 · 0 评论 -
设计模式之工厂方法模式
1、定义工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。2、形式工厂方法模式的通用类图如下所示:上图中各类和接口的含义为:抽象产品类Product负责定义产品的共性,实现对事物最抽象的定义抽象创建类Creator即为抽象工厂具体创建类ConcreteCreator为具体的实际工厂一个通用的模板代码如下:Productpublic abstract class Product { //产品类的公共方法 publ原创 2020-11-04 22:01:54 · 1307 阅读 · 0 评论 -
设计模式之单例模式
文章目录1、定义2、形式3、优缺点4、使用场景5、扩展小结1、定义单例模式(Singleton Pattern):确保某一个类只有一个实例,自行实例化并向整个系统提供这个实例。2、形式单例模式分为懒汉式和饿汉式两种,形式如下所述。饿汉式通用类图和代码如下所示:public class Singleton { private static final Singleton singleton = new Singleton(); private Singleton(){}原创 2020-11-03 18:35:26 · 184 阅读 · 0 评论 -
面向对象六大原则
1、单一职责原则英文名称:Single Responsibility Principle(SRP)基本定义:应该有且仅有一个原因引起类的变更。示例:对于常见的管理系统来说,一定会涉及到角色管理模块,针对于用户信息维护这一功能,一个糟糕的接口设计如下:好处:2、里氏替换原则3、依赖倒置原则4、接口隔离原则5、迪米特法则6、开闭原则...原创 2020-11-01 16:19:20 · 1399 阅读 · 0 评论