版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、九种设计模式的理解这都是我个人的愚见,请不要当做参考文献传阅!只是为了加深这九种模式的理解1)单例模式(Singleton)该类只生成唯一的一个对象!也就是说不管调用这个类的任一对象都是同一个对象。Singleton-singleton:Singleton-SingletDnO4-getinstBncEO;Singleinn2)策越模式(Strategy)抽象策越角色(Strategy):般是个接口具体策越角色(ConcreteStrategy):实现接口的类,并且实现接口中特定的方法,完成某一特定功能。环境角色(Context):含有一个抽象策越角色的引用作为成员变量通过定义不同的具体策越角
2、色类,并且实现接口中的方法,使他们的上转型对象都是接口类型,但他们实现接口的方法的策越都是不相同的。因此在环境角色中,不同的具体策越角色类的对象,会拥有不同的策越。(实际上就是一个上转型的多态)3)代理模式(StaticProxy,DynamicProxy)抽象角色(Subject):个公共接口代理角色(Proxy):实现了接口,并且还有一个抽象角色的引用作为成员变量。这个成员变量就是用来接收真实角色的对象的。通过实现接口的方法当中访问真实角色的方法。3真实角色(RealSubject):实现了接口,并且实现了接口中的特定方法,完成某一特定功能。因为代理角色和真实角色实现了相同的接口,所以他们
3、要实现相同的方法,但是代理角色实现的这个方法是直接调用了真实角色的同名方法,而且还为自身新增了功能。而真实角色的这个方法才是真正完成某一事情的实现。看似代理角色完全代理了真实角色。(三个角色与组合模式有点类似,但是侧重点完全不同)4)观察者模式(Observer)抽象主题角色(Subject):定义一个接口,声明作为主题角色应该具备的方法(对观察者对象的增删改之类的方法声明)。主题角色(ConcreteSubject):实现了抽象主题角色,实现了它的所有方法,并且含有一个抽象观察者角色的集合引用作为成员变量,也就是说一个主题角色可以拥有多个观察者。抽象观察者角色(Observer):定义了一个
4、接口,声明最为观察者角色应该具备的方法(这个方法是当观察者收到通知后做出的反应,一般就是update)。具体观察者角色(ConcreteObserver):实现抽象观察者角色,主要是实现接口中的update方法。观察者模式就是被观察者(具体主题角色)发生变化时,他就会通知其存放的那些观察者们,使观察者调用它们的update方法,做出相应的回应。如果只有一个观察者,那么整个观察者模式就会退化成简单的策越模式。如果有多个观察者,那么就与策越模式完全不同,因为策越模式侧重的是:不同的具体策越角色对象会拥有不同的策越!而观察者模式侧重的是:使所有的观察者都作出相应的回应。一个侧重单个的变化,一个侧重整
5、体的回应。5)装饰模式(Decorator)抽象构件角色(Component):定义一个接口,声明能够被装饰的目标方法具体构件角色(ConcreteComponent):实现抽象构件角色接口,实现接口中声明的方法,而这些方法的实现就是真正被包装后新增的功能。也就是说不同的具体构件角色会对这些方法实现不同的功能,而这些具体构件角色就是第一层被包装的类抽象装饰角色(Decorator):继承了抽象构件角色接口的接口具体装饰角色(ConcreteDecorator):实现了抽象装饰角色接口,实现了从抽象构件角色继承过来的方法,这些方法的实现是有规律的。并且含有一个抽象构件角色的引用作为成员变量。那么
6、具体装饰角色实现接口的方法是简单的调用他那个抽象构件角色成员变量的同名方法,这样,如果具体装饰角色接收了一个具体构件角色对象,那么具体构件角色就被包装了,具体构件角色所实现的方法就是包装新增的功能。当然,由于具体装饰角色也实现了抽象构件角色接口,那么它也能够自己装饰具体装饰角色,但是真正新增的功能永远是具体构件角色那里实现的(如果是在装饰角色的方法里实现,具体构件角色就显得毫无意义了)。因此,装饰与被装饰是相对的。另外,装饰的目的就是新增具体构件角色方法的功能。6)模板方法模式(Template)父类角色:定义一个抽象类,首先声明完成某一特定任务的一些方法名称(其具体实现交给子类去完成),这些
7、方法称为步骤。并且定义一个方法,这个方法的实现就是调用前面的那些声明过的方法,关键在于这些方法的顺序就已经在这里得到确定(子类不能更改),称之为模板方法。子类角色:实现了父类角色那些抽象方法(步骤),并且继承它的模板方法。因此无论如何实现步骤,它的模板是不会更改的。模板方法实际上就是有步骤的完成某一件事情,而这些具体步骤则交给子类去实现。步骤的顺序即模板则不会变化。像这种机制往往采用反射来完成。7)适配器模式(Adapter)1.目标抽象角色(Target):定义客户要用特定领域的接口2适配源(Adaptee):也称之为被适配者。它是最终的目标,换句话说,客户想到用适配源的方法。适配器(Ada
8、pter):也称之为转换器。客户想要通过目标抽象角色这个接口对象来调用适配源的方法,因为适配源和目标抽象角色根本就不存在关系,所以要用适配器进行转换,但不向客户公布。那么适配器有两种选择,其一是他可以实现目标抽象角色并且继承适配源,在实现接口中的方法的时候直接调用他继承适配源的方法就可以到达目的。其二是他可以实现目标抽象角色,并且含有适配源对象的引用,那么在实现接口的方法的时候直接通过适配源对象调用他的方法就可以到达目的。客户(Client):通过运用适配器对象完成他想要完成的目的以上也仅仅是两种适配器方式,还有第三种,就是缺省的适配器模式,这个模式在AWT或者是SWING中用到。8)命令模式
9、(Command)接收者角色(Receiver):负责调用具体命令角色,执行命令命令角色(Command):定义一个抽象接口,声明所有的命令方法具体命令角色(ConcreteCommand):实现命令角色接口,实现接口中的所有方法,这方法的实现就是命令所要求完成的功能。请求者角色(Invoker):负责与客户角色联系,并且把命令发送给接收者角色客户角色(Client):直接与接请求者角色联系,并且发出命令(所谓发出命令,实质就是定义一些具体命令角色的对象)。命令模式实际上是这样的,客户角色想要执行某条命令,那么他首先要生成对应的具体命令角色对象,然后通知给请求者角色(生成一个请求者角色对象)。
10、那么接下来就是请求者完成的事情了,请求者首先通知接收者角色(因为它含有接收者角色对象的引用),然后由接收者角色去完成事情,接收者会接收客户发送的那条命令(也就是说接收者角色含有具体命令角色对象的引用),然后执行这条命令。那么客户的命令就得到执行。因此,真正执行命令的是接收者角色,而真正命令的实现则是具体命令角色。9)组合模式(Composite)抽象构件接口(Component):定义一个接口,声明原子项所要实现的方法,同时,也是声明组合项中的方法,使二者形成默认的行为叶部件(Leaf):实现抽象构件接口,并且实现叶节点每一个方法的详细操作,此为原子项组合类(Composite):实现抽象构件接口,并且把Leaf对象的集合引用作为自己的成员变量,还定义了一些管理这些Leaf对象的方法(比如add,remove等)。实现接口中的方法,这些方法的实现是有规律的,也就是遍历Leaf集合,然后由每一个Leaf对象去执行接口中的方法客户角色(Client):控制Composi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CSHE 0008-2023压缩空气储能电站初步设计报告编制规程
- T/WHAS 061-2023光声断层成像系统
- T/GZJXC 08-2025贵州省岩土工程信息模型技术标准
- T/CIC 421-2025封隔器有限元仿真分析规程 第1部分:密封机构
- T/CAIEC 173-2025盾构隧道主体结构安全检测技术规程
- T/CSAE 408-2025越野汽车断开式电驱动桥总成技术条件及台架试验方法
- AI在运动人体科学中的应用
- AI在朝鲜语中的应用
- 2025-2026学年黑龙江省海伦市初中生物七年级期末上册深度自测黑金考题附答案
- 2025-2026学年甘肃省兰州市初中数学八年级期末下册自测黑金试卷(详细参考解析)
- 2026年风险管理中级试题及答案
- 中国伯基特淋巴瘤诊疗指南(2025版)
- 2026软考网络工程师案例分析真题汇编 高频考题专项训练 含详细答案解析+答题技巧
- 中国近现代史纲要(2023年版)系统解读
- 城市轨道交通接触网维护(第2版)课件:架空刚性接触网设备的维护
- 2026年国家开放大学非英语类《学位英语》考试(试卷号11908)模拟试题及答案解析
- 婴幼儿伤害预防与处理配套教材电子课件(完整版)
- 麦可思2025年中国大学生就业报告(完全详细版)
- 2026中国电科29所校园招聘笔试历年备考题库附带答案详解
- 2026年病原微生物实验室生物安全管理条例考试试题及答案(A卷)
- 近代自然科学研究方法
评论
0/150
提交评论