设计模式
文章平均质量分 74
M_azed
这个作者很懒,什么都没留下…
展开
-
十、设计模式(1~2)工厂方法模式(Factory Method)和抽象工厂模式(Abstact Factory)
源文作者:作者:朱小厮来源:CSDN原文:https://blog.csdn.net/u013256816/article/details/50975438在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计...转载 2019-06-14 15:42:33 · 222 阅读 · 0 评论 -
十、设计模式(15)责任链模式(Chain of Responsibility)
源文作者:作者:朱小厮来源:CSDN原文:https://blog.csdn.net/u013256816/article/details/50975438使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,知道有一个对象处理它为止。一、责任链模式的角色:抽象处理者角色(Handler):定义出一个处理...转载 2019-06-17 11:07:23 · 146 阅读 · 0 评论 -
十、设计模式(16)命令模式(Command)
源文作者:作者:朱小厮来源:CSDN原文:https://blog.csdn.net/u013256816/article/details/50975438将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以支持可撤销的操作。一、命令模式的角色客户端角色(Client):创建一个具体命令(ConcreteCommand)对象并...转载 2019-06-17 11:07:34 · 178 阅读 · 0 评论 -
十、设计模式(17)迭代器模式(Iterator)
源文作者:作者:朱小厮来源:CSDN原文:https://blog.csdn.net/u013256816/article/details/50975438提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。又称游标(Cursor)模式。一、迭代器模式角色组成抽象容器角色(Aggregate):负责提供创建具体迭代器角色的接口,一般是一个接口,提...转载 2019-06-17 11:07:39 · 170 阅读 · 0 评论 -
十、设计模式(18)中介者模式(Mediator)
源文作者:作者:朱小厮来源:CSDN原文:https://blog.csdn.net/u013256816/article/details/50975438用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。一、中介者模式中的角色抽象中介者(Mediator):定义了同事对象到中介者对象之间的接...转载 2019-06-17 11:07:45 · 368 阅读 · 0 评论 -
十、设计模式(19)备忘录模式(Memento)
源文作者:作者:朱小厮来源:CSDN原文:https://blog.csdn.net/u013256816/article/details/50975438在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将对象恢复到原先保存的状态。一、备忘录模式的角色原发器(Originator):负责创建一个备忘录,用以记录当前对象的内部状态...转载 2019-06-17 11:07:49 · 156 阅读 · 0 评论 -
十、设计模式(20)观察者模式(Observer)
源文作者:作者:朱小厮来源:CSDN原文:https://blog.csdn.net/u013256816/article/details/50975438定义对象见的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。一、观察者模式的角色抽象主题角色(Subject):把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色...转载 2019-06-17 11:07:54 · 187 阅读 · 0 评论 -
十、设计模式(21)状态模式(State)
源文作者:作者:朱小厮来源:CSDN原文:https://blog.csdn.net/u013256816/article/details/50975438允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。一、状态模式的角色环境角色Context):也称上下文,定义客户端所感兴趣的接口,并且保留一个具体状态类的实例。这个具体状态类的实例给出此环境...转载 2019-06-17 11:08:01 · 246 阅读 · 0 评论 -
十、设计模式(22)策略模式(Strategy)
源文作者:作者:朱小厮来源:CSDN原文:https://blog.csdn.net/u013256816/article/details/50975438定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。一、策略模式的角色抽象策略角色(Strategy):策略类,通常由一个接口或者抽象类实现 具体策略角色(Co...转载 2019-06-18 10:42:38 · 174 阅读 · 0 评论 -
十、设计模式(23)访问者模式(Vistor)
源文作者:作者:朱小厮来源:CSDN原文:https://blog.csdn.net/u013256816/article/details/50975438访问者模式表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。访问者模式的目的是封装一些施加于某种数据结构元素之上的操作,一旦这些操作需要修改的话,接受这个操作的数据结构...转载 2019-06-18 10:42:44 · 234 阅读 · 0 评论 -
十、设计模式(14)模板方法模式(Template Method)
源文作者:作者:朱小厮来源:CSDN原文:https://blog.csdn.net/u013256816/article/details/50975438模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。一次性的实现一个算法的不变部分,并将可变的行为留给子类来实现。...转载 2019-06-17 11:07:17 · 175 阅读 · 0 评论 -
十、设计模式(13)解释器模式(Interpreter)
源文作者:作者:朱小厮来源:CSDN原文:https://blog.csdn.net/u013256816/article/details/50975438给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。一、解释器模式的角色抽象表达式角色(AbstractExpression):声明一个所有的具体表达式角色都需要实现的...转载 2019-06-17 11:07:07 · 138 阅读 · 0 评论 -
十、设计模式(12)代理模式(Proxy)
源文作者:作者:朱小厮来源:CSDN原文:https://blog.csdn.net/u013256816/article/details/50975438代理模式:为其他对象提供一种代理以控制对这个对象的访问。代理模式又分为静态代理和动态代理。静态代理是由程序猿创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。动态代理是在程序运行...转载 2019-06-17 11:06:22 · 319 阅读 · 0 评论 -
十、设计模式(3)建造者模式(Builder)
源文作者:作者:朱小厮来源:CSDN原文:https://blog.csdn.net/u013256816/article/details/50975438建造者模式:是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。一、建造者模式通常包括下几个角色builder(抽象建造者):给出一个抽象结论,以规范产品对象的各个组成成分的建造。这个接...转载 2019-06-14 15:52:11 · 174 阅读 · 0 评论 -
十、设计模式(4)原型模式(Prototype)
源文作者:作者:朱小厮来源:CSDN原文:https://blog.csdn.net/u013256816/article/details/50975438原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。一、举例1.原型(实际上是implements了Cloneable接口,进而重写clone()方法)public class Prot...转载 2019-06-14 16:04:12 · 162 阅读 · 0 评论 -
十、设计模式(5)单例模式(Singleton)
源文作者:作者:朱小厮来源:CSDN原文:https://blog.csdn.net/u013256816/article/details/50975438单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。适用性:当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时...转载 2019-06-14 16:14:22 · 176 阅读 · 0 评论 -
十、设计模式(6)适配器模式(Adapter)
源文作者:作者:朱小厮来源:CSDN原文:https://blog.csdn.net/u013256816/article/details/50975438适配器模式:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式有类适配器模式和对象适配器模式两种不同的形式。类适配器 类适配器模式把适配的类的A...转载 2019-06-14 16:38:20 · 168 阅读 · 0 评论 -
十、设计模式(7)桥接模式(Bridge)
源文作者:作者:朱小厮来源:CSDN原文:https://blog.csdn.net/u013256816/article/details/50975438定义:将抽象部分与它的实现部分分离,使它们都可以独立地变化。意图:将抽象与实现解耦。桥接模式主要应对的是由于实际的需要,某个类具有两个或者两个以上的维度变化(违反了SRP原则),如果只是用继承将无法实现这种需要,或者使得设...转载 2019-06-14 16:49:06 · 197 阅读 · 0 评论 -
十、设计模式(8)组合模式(Composite)
源文作者:作者:朱小厮来源:CSDN原文:https://blog.csdn.net/u013256816/article/details/50975438将对象组合成属性结构以表示“部分-整体”的层次结构。组合使得用户和单个对象和组合对象的使用具有一致性。一、组合模式设计的角色Component:是组合中的对象声明接口,在适当的情况下,实现所有类共有接口的默认行为。...转载 2019-06-14 16:58:57 · 212 阅读 · 0 评论 -
十、设计模式(9)装饰模式(Decorator)
源文作者:作者:朱小厮来源:CSDN原文:https://blog.csdn.net/u013256816/article/details/50975438动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式想必生成子类更为灵活。装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。一、装饰模式中的角色有...转载 2019-06-14 17:06:36 · 172 阅读 · 0 评论 -
十、设计模式(10)外观模式(Facade)
源文作者:作者:朱小厮来源:CSDN原文:https://blog.csdn.net/u013256816/article/details/50975438为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称门面模式。一、外观模式的角色门面角色:客户端可以调用这个角色的方法。此角色知晓相关的(一...转载 2019-06-14 17:12:05 · 158 阅读 · 0 评论 -
十、设计模式(11)享元模式(Flyweight)
源文作者:作者:朱小厮来源:CSDN原文:https://blog.csdn.net/u013256816/article/details/50975438运用共享技术有效地支持大量细粒度的对象。又名“蝇量模式”。在Java语言中,String类型就是使用了享元模式。String对象是final类型,对象一旦创建就不可改变。在JAVA中字符串常量都是存在常量池中的,Java会...转载 2019-06-14 17:23:53 · 158 阅读 · 0 评论 -
十、设计模式(-)常用设计模式--以及23种全解析
一、23种设计模式设计模式一共可以分为23种,3大类:创建型Factory Method(工厂方法)https://blog.csdn.net/M_azed/article/details/91978020Abstract Factory(抽象工厂)https://blog.csdn.net/M_azed/article/details/91978020Builder(建造者)ht...原创 2019-06-18 10:58:37 · 245 阅读 · 0 评论