随笔分类 - 设计模式
发表于 2017-12-14 09:02阅读:131评论:0推荐:0
摘要:转载自:http://blog.csdn.net/hust_is_lcd/article/details/78843201.认识装饰器模式 装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象添加功能。通常给对象添加功能,要么直接修改对象添加相应的功能...
阅读全文 »
发表于 2017-12-14 09:02阅读:105评论:0推荐:0
摘要:什么是设计模式为解决某一类普遍存在的问题而提供的一种解决方案;分类及定义创建型模式(5)1、原型模式:通过复制一个已存在对象来生成一个新对象,被复制的对象称为原型;详情...2、单例模式:一个类只有一个全局实例;详情...3、生成器模式:对复杂对象的创建过程进行抽象,...
阅读全文 »
发表于 2017-12-14 09:02阅读:121评论:0推荐:0
摘要:使用频率:★★★★☆一、什么是简单工厂模式一个工厂方法,依据传入的参数,生成对应的具体产品对象;二、补充说明不属于23种GOF设计模式;工厂方法一般设成静态方法,返回值一般是抽象类或接口,具体的产品类一般继承或实现抽象类、接口;优点:产品使用者不需要关心产品类的创建过...
阅读全文 »
发表于 2017-12-14 09:01阅读:158评论:0推荐:0
摘要:使用频率:★★★★☆一、什么是代理模式通过代理对象间接控制并访问目标对象的方法;二、补充说明想到代理模式,容易让人想到AOP思想,Spring中的AOP可以通过动态代理实现;代理模式有静态代理和动态代理两种;解耦调用者和被调用者;三、角色抽象主题,定义一些需要代理的方...
阅读全文 »
发表于 2017-12-14 09:01阅读:144评论:0推荐:0
摘要:使用频率:★★★★★一、什么是外观模式在子系统中的接口之上定义一个更高层次的接口,方便使用子系统中的接口;二、补充说明缺点:不符合开闭原则,修改子系统的代码会影响高层接口代码;优点:引入外观类可以降低系统的复杂度,提高了客户端使用的便捷性;优点:客户类与子系统解耦;三...
阅读全文 »
发表于 2017-12-13 17:43阅读:144评论:0推荐:0
摘要:使用频率:★★★★☆一、什么是组合模式树形结构的实现,用于描述“整体-部分”的关系;二、补充说明使用场景:部分/整体场景,如树形菜单; 文件/文件夹; 树形结构的公司层级关系...三、角色抽象角色叶子角色树枝角色客户端角色四、例子,JAVA实现利用组合模式实现如下文件...
阅读全文 »
发表于 2017-12-13 11:22阅读:182评论:0推荐:0
摘要:使用频率:★★★☆☆一、什么是桥接模式将对象的行为抽象为接口,作为抽象类的成员属性在抽象层进行组合(个人理解,仅供参考);二、补充说明改变对象与其行为的强耦合关系,使之与行为解耦;使对象的行为以及对象本身都能独立变化;三、角色抽象类具体实现类行为接口具体行为实现类客户...
阅读全文 »
发表于 2017-12-13 11:14阅读:199评论:0推荐:0
摘要:使用频率:★☆☆☆☆一、什么是享元模式大量细粒度对象共享复用二、补充说明可以节约内存空间,提高系统的性能;一个对象有内部和外部两种状态,内部状态是不变的,外部状态是可变的,把一个对象分成内部状态和外部状态,然后通过共享内部状态,达到节约内存空间的目的;应用场景举例:一...
阅读全文 »
发表于 2017-12-13 11:07阅读:148评论:0推荐:0
摘要:使用频率:★★★☆☆一、什么是状态模式一个对象的行为根据其内部状态的改变自动变化;二、补充说明结构与策略模式基本一致;与策略模式区别:使用策略模式时,客户端手动选择策略,使用状态模式时,其行为是根据状态是自动切换的。其内部状态改变时,它的行为(方法)也跟着改变,看起来...
阅读全文 »
发表于 2017-12-13 10:47阅读:151评论:0推荐:0
摘要:定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态类型:行为类类图: 我们在编程的时候,经常需要保存对象的中间状态,当需要的时候,可以恢复到这个状态。比如,我们使用Eclipse进行编...
阅读全文 »
发表于 2017-12-13 10:41阅读:145评论:0推荐:0
摘要:使用频率:★☆☆☆☆一、什么是解释器模式定义一些语法规则,然后定义一个解析器去解析该语法;所谓解释器模式就是定义语言的文法,并且建立一个解释器来解释该语言中的句子。 在这里我们将语言理解成使用规定格式和语法的代码。 在前面我们知道可以构建解释器来解...
阅读全文 »
发表于 2017-12-13 10:06阅读:139评论:0推荐:0
摘要:使用频率:★★★★★一、什么是迭代器模式提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。二、补充说明单一职责原则,分离了集合对象的遍历行为,抽象出一个迭代器类来负责;三、角色迭代器接口迭代器具体实现抽象容器具体容器四、例子,JAVA实现例子说明:...
阅读全文 »
发表于 2017-12-13 10:00阅读:218评论:0推荐:0
摘要:使用频率:★★★★☆什么是策略模式对象的行为,在不同的环境下,有不同的实现;比如人的上班行为,在不同的环境下,可以选择走路上班或者开车上班,由客户端根据情况决定采用何种策略;补充说明符合“开闭原则”,可以在不修改原有代码的基础上替换、添加新的策略;不同的策略可以相互替...
阅读全文 »
发表于 2017-12-13 09:37阅读:123评论:0推荐:0
摘要:使用频率:★★★☆☆一、什么是责任链模式为请求创建了一个接收者对象的链,每个接收者都包含对另一个接收者的引用,当某个接受者不能处理该请求时,会将该请求转给下一个接受者处理;二、补充说明请求发送者与请求接受者解耦应用例子:struts的拦截器,servlet的过滤器三、...
阅读全文 »
发表于 2017-12-13 09:32阅读:143评论:0推荐:0
摘要:使用频率:★★★★☆一、什么是命令模式将请求封装成命令对象,请求的具体执行由命令接收者执行;二、补充说明命令发送者与命令执行者解耦;可扩展命令模式:对请求排队或者记录请求日志,以及支持可撤销的操作;每一个命令都是一个操作:请求的一方发出请求,要求执行一个操作;接收的一...
阅读全文 »
发表于 2017-12-13 09:12阅读:120评论:0推荐:0
摘要:转载自:http://blog.csdn.net/zhengzhb/article/details/7489639定义:封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。类型:行为类模式类图: 访问者模式...
阅读全文 »
发表于 2017-12-13 08:46阅读:156评论:0推荐:0
摘要:定义:定义对象间一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。类型:行为类模式类图: 在软件系统中经常会有这样的需求:如果一个对象的状态发生改变,某些与它相关的对象也要随之做出相应的变化。比如,我们要设计一个...
阅读全文 »
发表于 2017-12-12 11:03阅读:152评论:0推荐:0
摘要:使用频率:★★★☆☆一、什么是中介者模式对象之间通过中介者对象进行交互,而不是直接交互;二、补充说明对紧密关联的各个对象解耦;典型例子:QQ群,聊天室;三、角色抽象中介者具体中介者抽象对象具体对象四、例子,JAVA实现例子说明,一个网络聊天室抽象中介者package ...
阅读全文 »
发表于 2017-12-12 10:39阅读:122评论:0推荐:0
摘要:转载自:http://blog.csdn.net/zhengzhb/article/details/7405608定义:定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。类型:行为类模式类图: ...
阅读全文 »
发表于 2017-12-12 10:16阅读:112评论:0推荐:0
摘要:转载自:http://blog.csdn.net/zhengzhb/article/details/7393557创建类模式主要关注对象的创建过程,将对象的创建过程进行封装,使客户端可以直接得到对象,而不用去关心如何创建对象。创建类模式有5种,分别是:单例模式:用于得...
阅读全文 »