设计模式例子
【篇一:设计模式例子】
【篇二:设计模式例子】
经过几天时间的努力,整理,设计模式的demo和资料基本整理完成,首先声明,这些资料部分从网上的,还有部分是用了 java与模式 书中的例子,里面的模式也是照着这书上的划分的,很不错的一本书,想学习设计模式的同学可以看看。先说说我的体会,每次看设计模式,总会有新的体会,这是第三次我复习复习这方面的知识了,感觉还不错,但是时间久了估计还是会忘,所以最好的办法还是个例子,忘得时候看看怎么用就行了,我的demo把27种设计模式进行了合并,不同的模式例子,分放在不同的文件中。资料总共有一下27种模式:
设计模式主要分三个类型:创建型、结构型和行为型。
其中创建型有:
一、singleton,单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点
二、abstract factory,抽象工厂:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类。
三、factory method,工厂方法:定义一个用于创建对象的接口,让子类决定实例化哪一个类,factory method使一个类的实例化延迟到了子类。
四、builder,建造模式:将一个复杂对象的构建与他的表示相分离,使得同样的构建过程可以创建不同的表示。
五、prototype,原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型来创建新的对象。
行为型有:
六、iterator,迭代器模式:提供一个方法顺序访问一个聚合对象的各个元素,而又不需要暴露该对象的内部表示。
七、observer,观察者模式:定义对象间一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知自动更新。
八、template method,模板方法:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,templatemethod使得子类可以不改变一个算法的结构即可以重定义该算法得某些特定步骤。
九、command,命令模式:将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化,对请求排队和记录请求日志,以及支持可撤销的操作。
十、state,状态模式:允许对象在其内部状态改变时改变他的行为。对象看起来似乎改变了他的类。
十一、strategy,策略模式:定义一系列的算法,把他们一个个封装起来,并使他们可以互相替换,本模式使得算法可以独立于使用它们的客户。
十二、chain of responsibility,职责链模式:使多个对象都有机会处理请求,从而避免请求的送发者和接收者之间的耦合关系
十三、mediator,中介者模式:用一个中介对象封装一些列的对象交互。
十四、visitor,访问者模式:表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素类的前提下定义作用于这个元素的新操作。
十五、interpreter,解释器模式:给定一个语言,定义他的文法的一个表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
十六、memento,备忘录模式:在不破坏对象的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。
结构型有:
十七、composite,组合模式:将对象组合成树形结构以表示部分整体的关系,composite使得用户对单个对象和组合对象的使用具有一致性。
十八、facade,外观模式:为子系统中的一组接口提供一致的界面,fa?ade提供了一高层接口,这个接口使得子系统更容易使用。
十九、proxy,代理模式:为其他对象提供一种代理以控制对这个对象的访问
二十、adapter,适配器模式:将一类的接口转换成客户希望的另外一个接口,adapter模式使得原本由于接口不兼容而不能一起工作那些类可以一起工作。
二十一、decrator,装饰模式:动态地给一个对象增加一些额外的职责,就增加的功能来说,decorator模式相比生成子类更加灵活。
二十二、bridge,桥模式:将抽象部分与它的实现部分相分离,使他们可以独立的变化。
二十三、flyweight,享元模式除了以上23个模式之外,根据 java与模式 中的分类,还有4种模式,defaultadapter 缺省适配器模式,simplefactory 简单工厂模式,multiton 多例模式, immutable 不变模式下面我来说说怎么阅读每个模式,每个文件中的test.java是该模式的测试类,上面的注解详细描述了该模式的具体介绍和优缺点等等,该包中的其他文件就是一些接口或抽象类等该模式所需要的类,要理解每个模式的思想,要把该包中的几个联系着一起看,为了避免太乱,就分开写了。
下面上传几段代码:代理模式的代码:
单例模式的几种实现方式【篇三:设计模式例子】
29---------------------------------------------感谢观看本文-------谢谢----------------------------------------------------------- [标签:标题] 2016 设计模式例子归纳总结 ————装饰模式 专业班级:信计080学号:0808060217 官方定义:动态地给一个对象增加其他职责。就扩展对象功能来说,装饰者模式比生成子类更为灵活。
装饰这模式利用组合在运行时动态的合成自己想要的对象,这比继承更具弹性。
利用继承设计子类的行为,是在编译时静态决定的,而且所有的子类都会继承到相同的行为,然而,如果 能够利用组合的做法扩展对象的行为,就可以在运行 时动态地进行扩展。.类应设计的对扩展开放,对修改 关闭。
1.装饰者和被装饰对象有相同的超类型。.可以用一个或多个装饰者包装一个对象。
29---------------------------------------------感谢观看本文-------谢谢----------------------------------------------------------- [标签:标题] 2016 后,加上自己的行为,以达到特定的目的。
4.对象可以在任何时候被装饰,所以可以在运行时动态的,不限量的用你喜欢的装饰者来装饰对象。
5.装饰模式中使用继承的关键是想达到装饰者和被装饰对象的类型匹配,而不是获得其行为。
6.装饰者一般对组件的客户是透明的,除非客户程序依赖于组件的具体类型。在实际项目中可以根据需 要为装饰者添加新的行为,做到“半透明”装饰者。
7.适配器模式的用意是改变对象的接口而不一定改变对象的性能,而装饰模式的用意是保持接口并增加 对象的职责。
抽象构件角:定义一个抽象接口,来规范准备附加功能的类。
具体构件角:将要被附加功能的类,实现抽象构件角接口。抽象装饰者角:持有对具体构件角 的引用并定义与抽象构件角一致的接口。具体装饰 角:实现抽象装饰者角,负责为具体构件添加额 外功能。
其中,被装饰者与抽象装饰者都继承与抽象构件角,具体装饰角继承与抽象装饰角,之所以让装 29---------------------------------------------感谢观看本文-------谢谢----------------------------------------------------------- [标签:标题] 2016 饰者和被装饰者继承于同一组件是想让装
饰者和被装 饰者具有统一的类型而非为了继承行为。
装饰者模式的基本思想是用装饰者来包装组件使之成为一个同类型的新组件,所以在装饰者角中,记 录当前对象,利用多态技术,用基类对象引用最终被 包裹后的对象,就获得了组件和所有包裹过组件的行 2.需要动态的给一个对象添加功能,这些功能可以再动态的撤销。
3.需要增加由一些基本功能的排列组合而产生的非常大量的功能,从而使继承关系变的不现实。
4.当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产 生大量的子类,使得子类数目呈爆炸性增长。另一种 情况可能是因为类定义被隐藏,或类定义不能用于生 成子类。六、优缺点优点: 1.decorator模式与继承关系的目的都是要扩展对象 的功能,但是 decorator 可以提供比继承更多的灵活 29---------------------------------------------感谢观看本文-------谢谢----------------------------------------------------------- [标签:标题] 2016 2.通过使用不同的具体装饰类以及这些装饰类的排列组合,设计师可以创造出很多不同行为的组合。缺 1.这种比继承更加灵活机动的特性,也同时意味着更加多
的复杂性。
2.装饰模式会导致设计中出现许多小类,如果过度使用,会使程序变得很复杂。.装饰模式是针对抽象组件 类型编程。但是,如果你要针对具体组件编程时,就 应该重新思考你的应用架构,以及装饰者是否合适。
当然也可以改变component 接口,增加新的公开的行 为,实现“半透明”的装饰者模式。在实际项目中要做 出最佳选择。
制作一个可以给人搭配不同的服饰的系统,比如类似qq,网络游戏或论坛都有的avatar 系统.实现方式 29---------------------------------------------感谢观看本文-------谢谢----------------------------------------------------------- [标签:标题] 2016 29---------------------------------------------感谢观看本文-------谢谢----------------------------------------------------------- [标签:标题] 2016 刚开始学习设计模式的时候,感到这些模式真的非常抽象。今年下半年以来,随着我们组工作重点的转 移,以及我在小组中角的变化,我开始有条件提出 自己对新系统的设计想法。在设计过程中,我发现了 很多设计模式的用处,也确实应用了很多设计模式, 这让我越来越感到设计模式的重要性,因此我写了这 十余篇专门介绍设计模式的文章,作为我的学习笔记。
《设计模式——可复用的面向对象软件的基础》中介 29---------------------------------------------感谢观看本文-------谢谢----------------------------------------------------------- [标签:标题] 2016 绍了一共23 种设计模式,我一共写了19 个设计模式, 余下四个,考虑到该模式的应用范围我就没有介绍。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论