常用设计模式

常用设计模式

ID:37501944

大小:560.92 KB

页数:34页

时间:2019-05-24

常用设计模式_第1页
常用设计模式_第2页
常用设计模式_第3页
常用设计模式_第4页
常用设计模式_第5页
资源描述:

《常用设计模式》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、常用设计模式设计模式的分类:设计模式可以分为三大类,分别是创建型设计模式、行为型设计模式以及结构型设计模式。创建型的设计模式:单例模式(Singleton)构建模式(Builder)原型模式(Prototype)抽象工厂模式(AbstractFactory)工厂方法模式(FactoryMethod)行为设计模式:策略模式(Strategy)状态模式(State)责任链模式(ChainofResponsibility)解释器模式(Interpreter)命令模式(Command)观察者模式(Observer)备忘录模式(Memento)迭代器模式(Iterator)模板方

2、法模式(TemplateMethod)访问者模式(Visitor)中介者模式(Mediator)结构型设计模式:装饰者模式(Decorator)代理模式(Proxy)组合模式(Composite)桥连接模式(Bridge)适配器模式(Adapter)蝇量模式(Flyweight)外观模式(Facade)各种模式的表述:单例模式(Singleton):确保有且只有一个对象被创建。抽象工厂模式(AbstractFactory):允许客户创建对象的家族,而无需指定他们的具体类。工厂方法模式(FactoryMethod):由子类决定要创建的具体类是哪一个。装饰者模式(Decor

3、ator):包装一个对象,以提供新的行为。状态模式(State):封装了基于状态的行为,并使用委托在行为之间切换。迭代器模式(Iterator):在对象的集合之中游走,而不暴露集合的实现。外观模式(Facade):简化一群类的接口。策略模式(Strategy):封装可以互换的行为,并使用委托来决定要使用哪一个。代理模式(Proxy):包装对象,以控制对此对象的访问。适配器模式(Adapter):封装对象,并提供不同的接口。观察者模式(Observer):让对象能够在状态改变时被通知。模板方法模式(TemplateMethod):有子类决定如何实现一个算法中的步骤。组合模

4、式(Composite):客户用一致的方法处理对象集合和单个对象。命令模式(Command):封装请求成为对象。1、装饰模式装饰模式是对对象功能增强时,平时使用继承的一种替代方案二.组成部分:1.抽象构件:原始的功能接口2.具体构件:具体的原始功能类3.装饰角色:持有具体构件类的对象,以便执行原有功能4.具体装饰:具体扩展的功能在这里三.例子代码:使用装饰模式来演示一个对”行走”功能扩展的例子(听音乐+行走和唱歌+行走)1.抽象构件[java]viewplaincopyprint?1.packagecom.eekq.decorator;2.3.publicinterfa

5、ceComponent{4./**原始接口*/5.publicvoidgo();6.}packagecom.eekq.decorator;publicinterfaceComponent{/**原始接口*/publicvoidgo();}2.具体构件[java]viewplaincopyprint?1.packagecom.eekq.decorator;2.3.publicclassConcreteComponentimplementsComponent{4.5.publicvoidgo(){6.System.out.println("行走");7.}8.9.}pack

6、agecom.eekq.decorator;publicclassConcreteComponentimplementsComponentpublicvoidgo(){System.out.println("行走");}}3.装饰角色来了[java]viewplaincopyprint?1.packagecom.eekq.decorator;2.3.publicclassDecoratorimplementsComponent{4./**持有私有的原始构件*/5.privateComponentcomponent;6.7./**构造子,委派给原始构件*/8.protec

7、tedDecorator(Componentcomponent){9.this.component=component;10.}11.12./**调用原始构件功能,通常就可直接把扩展功能加在此方法中*/13.publicvoidgo(){14.this.component.go();15.}16.17.}packagecom.eekq.decorator;publicclassDecoratorimplementsComponent{/**持有私有的原始构件*/privateComponentcomponent;/**构造子,委派给原始构

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。