![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
哦吼~
心如欲壑,厚土难填。
展开
-
单例模式(Singleton)
1.目的:保证一个类只可创建一个对象2.实现:①构造函数私有化类外不可创建对象构造函数私有的类不可被继承②类的静态成员:类的静态成员属于类而不属于对象类的静态成员不需要通过对象/指向对象的指针引用类的静态成员在引用时,要遵循访问权限3.类的静态成员①类的静态数据成员在类内定义,类外初始化类内定义: static 数据类型 静态成员名;类外初始化: 数据类型 类名::静态成员...原创 2019-08-28 16:27:43 · 211 阅读 · 0 评论 -
建造者模式(Builder Pattern)
1.建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。2.类型 :对象创建型模式3.4.各部分说明**产品类:**一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量。在本类图中,产品类是一个具体的类,而非抽象类。实际编程中,产品类可以是由一个抽象类与它的不同实现组成,也可以是由多个抽象类与他们的实现组成。**抽象建造者:*...原创 2019-10-05 17:45:45 · 115 阅读 · 0 评论 -
原型模式(Prototype Pattern)
1.原型模式(Prototype Pattern):用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象2.类型:对象创建型模式3.类图4.各部分说明Prototype,抽象原型类声明克隆方法的接口。是所有具体原型类的公共父类。可以是抽象类也可以是接口,甚至还可以是具体实现类。ConcretePrototype,具体原型类Prototype的具体原型类。实现在抽象原型...原创 2019-10-05 18:14:01 · 70 阅读 · 0 评论 -
外观/门面模式(Facade Pattern)
1.外观模式(Facade Pattern):为子系统中的一组接口提供一个统一的入口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。2.类型:对象结构型模式3.类图4.各部分说明Facade门面角色客户端可以调用这个角色的方法。此角色知晓子系统的所有功能和责任。一般情况下,本角色会将所有从客户端发来的请求委派到相应的子系统去,也就说该角色没有实际的业务逻辑,只是一个委...原创 2019-10-05 18:37:01 · 117 阅读 · 0 评论 -
享元模式(Flyweight Pattern)
1.享元模式(Flyweight Pattern):运用共享技术有效地支持大量细粒度对象的复用。享元模式运用共享技术实现相同或相似对象的复用。2.享元模式要求细粒度对象和对象复用,那很多对象具有相同或者相似的特征等等,我们将这些对象的信息分为两个部分:内部状态(intrinsic)与外部状态(extrinsic)。● 内部状态内部状态是对象可共享出来的信息,存储在享元对象内部并且不会随环境改...原创 2020-02-15 17:21:54 · 120 阅读 · 0 评论 -
命令模式(Command Pattern)
1.命令模式(Command Pattern):将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,对请求排队或者记录请求日志,以及支持可撤销的操作。2.类型:对象行为型模式3.类图4.各部分说明Command: 抽象命令类声明了用于执行请求的execute()等方法,在方法中可以调用接受者的方法。ConcreteCommand: 具体命令类含有请求接受者的引用,可以调用...原创 2020-02-15 17:21:06 · 135 阅读 · 0 评论 -
中介者模式(Mediator Pattern)
1.中介者模式(Mediator Pattern):用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。2.类型:对象行为型模式3.类图4.各部分说明Mediator: 抽象中介者定义一个接口用于与各同事通信。ConcreteMediator: 具体中介者含有对各个同事对象的引用,协调各个同事对象。Coll...原创 2020-02-15 17:21:45 · 122 阅读 · 0 评论 -
备忘录模式(Memento Pattern)
1.备忘录模式(Memento Pattern):在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。2.类型:对象行为型模式3.类图:4.各部分说明Originator:原发器定义备份哪些内部状态。创建备忘录。存储状态。恢复状态。Memento:备忘录负责存储原发器状态。原发器根据需要决定备忘录存储原发器的哪些...原创 2020-02-15 17:21:36 · 137 阅读 · 0 评论 -
状态模式(State Pattern)
1.状态模式(State Pattern) :允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。2.类型:对象行为型模式3.类图4.各部分说明Context: 环境类 (上下文)定义了客户程序需要的接口。维护一个具体状态角色ConcreteState的实例,这个实例定义当前状态。State: 抽象状态类定义一个接口以封装与环境类Context的一个特定状态相...原创 2020-02-15 17:21:28 · 77 阅读 · 0 评论 -
访问者模式(Visitor Pattern)
1.访问者模式(Visitor Pattern):表示一个作用于某对象结构中的各元素的操作,它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。2.类型:对象行为型3.类图4.各部分说明抽象访问者:声明访问者可以访问哪些元素,具体到程序中就是visit方法中的参数定义哪些对象是可以被访问的。访问者:实现抽象访问者所声明的方法,它影响到访问者访问到一个类后该干什么,要做什么...原创 2020-02-15 17:21:18 · 138 阅读 · 0 评论 -
观察者模式(Observer Pattern)
1.观察者模式(Observer Pattern):定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。2.类型:对象行为型模式3.类图:4.观察者的实现主要包含以下几个部分: 抽象主题类:抽象主题角色把所有对观察者对象的引用保存在一个集合里(如ArrayList),每个主题都可以有任何数量的观察者。抽象主题提供一个借口,可以增加和删除...原创 2019-10-05 17:46:25 · 133 阅读 · 0 评论 -
策略模式(Strategy Pattern)
1.定义:定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化。2.别名:政策模式(Policy)3.类型:对象行为型模式package 策略模式;/*Context: 上下文类具体类选择策略解决问题(通过一个ConcreteStrategy对象来配置)。维持着一个抽象策略类Strategy的引用。Strategy: 抽象策略类具体...原创 2019-09-09 20:03:19 · 121 阅读 · 0 评论 -
工厂模式
//工厂处理创建对象的细节。抽象工厂模式与工厂方法模式的区别 抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。他与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则是针对的多个产品等级结构。在编程中,通常一个产品结构,表现为一个接口或者抽象类,也就是说,工厂方法模式提供的所有产品都是衍生自同一个接口或抽象类,而抽象工厂模式所提供的...原创 2019-08-30 19:18:36 · 117 阅读 · 0 评论 -
迭代器模式
定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。类型:行为类模式package 迭代器模式;import java.util.ArrayList;import java.util.List;/*迭代器模式的结构:抽象容器:一般是一个接口,提供一个iterator()方法,例如java中的Collection接口,List接口,Set接口等。具体容器...原创 2019-09-02 19:36:07 · 132 阅读 · 0 评论 -
组合模式
1.组合模式:是层次化的,将多个派生类组合到一个容器下2.结构:将所有对象组织在一个树状结构下3.用来实现对象之间的部分–整体之间的关系,把部分和整体放到同一个继承体系下,实现统一类型(接口)4.组合模式使得用户对单个对象和组合对象的使用具有一致性。5.类型:对象结构型模式Component,抽象构件 接口或抽象类叶子构件和容器构件共有方法的声明和实现放在抽象构件类中,这些方法包括...原创 2019-09-02 20:35:10 · 108 阅读 · 0 评论 -
装饰模式
//装饰模式:指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。// 即一个主功能有若干个辅助功能,将这若干个辅助功能合起来作为一个主功能存在,//由每个主功能自动的去选择所需的辅助功能//对象结构型模式/*以下情况使用Decorator模式1. 需要扩展一个类的功能,或给一个类添加附加职责。2. 需要动态的给一个对象添加功能,这些功能可以再动态的撤销。3. 需...原创 2019-09-02 22:07:00 · 89 阅读 · 0 评论 -
桥接模式(Bridge Pattern)
1.目的:将抽象与实现分离,使得它们都可以独立的变化2.类型:对象结构型模式Abstraction:接口,里面声明了一个operation的方法,及Implementor的对象RefinedAbstraction:具体的实现类,但是其并没有实现接口的方法,而是去引用Implementor的实现类的方法Implementor:接口,里面声明了具体要实现的抽象方法ConcreteImple...原创 2019-09-04 17:50:50 · 111 阅读 · 0 评论 -
适配器模式
1.适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作。2.实现软件复用和接口转换(1)Target(目标抽象类):定义了特定的工作接口。(2)Adapter(适配器类):模式的核心类,作为转换器对Target和Adaptee进行适配。(3)Adaptee(适配者类):定义了需要适配的接口。对象匹配:package 适配...原创 2019-09-04 18:28:37 · 156 阅读 · 0 评论 -
代理模式
1.代理模式:把多个类的方法的调用封装在一个类中,其本身没有实现,只是负责调用。2.实际把一对多的关系换成了一对一的关系3.类型:对象结构型模式Base:接口 包含一个抽象方法method()的声明Proxy:实现Base接口的类 里面有Base类型的指针 Source:实现Base接口的类package 代理模式;public class ProxyPattern { ...原创 2019-09-05 15:58:22 · 109 阅读 · 0 评论 -
模板模式(Template Pattern)
1.模板模式:定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。(通俗点说就是将方法声明到基类中,而在基类中可以通过公有方法访问对应的不同功能的方法,同时也可以访问具有已知功能的方法,实现复用。)2.类型:行为型模式3.倒置原则:通俗讲 由基类决定调用哪个派生类实现,而不是由派生类决定。4.优点代码复用。使用继承...原创 2019-09-09 18:51:14 · 176 阅读 · 0 评论 -
职责链模式(Chain of Responsibility Pattern)
1.职责链模式(Chain of Responsibility Pattern):使多个对象都有机会处理请求,从而避免请求发送者与接收者耦合在一起。将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。2.类型:对象行为型模式3.纯职责链每个处理者接收到请求后,要么单纯转发请求,要么单纯处理请求。不允许既处理请求,又转发请求的情况。请求必须被责任链上的某个处理者处理。不允许...原创 2019-09-09 19:34:57 · 127 阅读 · 0 评论 -
解释器模式(Interpreter Pattern)
1.解释器模式(Interpreter Pattern):给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。2.类型:类行为型模式3.类图4.各部分说明5.实现6.优点7.缺点...原创 2020-02-15 17:20:50 · 111 阅读 · 0 评论