java设计模式 ppt_Java设计模式(精品·公开课件).ppt

Java设计模式---适配器模式 结构模式---适配器模式(Adapter)如何将两个不兼容的类纠合在一起使用,通常的解决方案是:修改各自类的接口,但是如果我们没有源代码,或者我们不愿意为了一个应用而修改各自的接口,怎么办? Java设计模式---组合模式 结构模式---组合模式(Composite)将对象组合成树形结构以表示“整体—部分”的层次结构。Composite模式使单个对象和组合对象的使用具有一致性。Composite将遍历(Iterator)整个树形结构,寻找同样包含这个方法的对象并实现调用执行。 Java设计模式---装饰模式 结构模式---装饰模式(Decorator)装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 结构模式---装饰模式 装饰模式UML 结构模式---装饰模式 装饰模式特点 比继承更灵活从为对象添加功能的角度来看,装饰模式比继承来得更灵活。继承是静态的,而且一旦继承是所有子类都有一样的功能。而装饰模式采用把功能分离到每个装饰器当中,然后通过对象组合的方式,在运行时动态的组合功能,每个被装饰的对象,最终有哪些功能,是由运行期动态组合的功能来决定的。 更容易复用功能装饰模式把一系列复杂的功能,分散到每个装饰器当中,一般一个装饰器只实现一个功能,这样实现装饰器变得简单,更重要的是这样有利于装饰器功能的复用,可以给一个对象增加多个同样的装饰器,也可以把一个装饰器用来装饰不同的对象,从而复用装饰器的功能。 简化高层定义装饰模式可以通过组合装饰器的方式,给对象增添任意多的功能,因此在进行高层定义的时候,不用把所有的功能都定义出来,而是定义最基本的就可以了,可以在使用需要的时候,组合相应的装饰器来完成需要的功能。 会产生很多细粒度对象前面说了,装饰模式是把一系列复杂的功能,分散到每个装饰器当中,一般一个装饰器只实现一个功能,这样会产生很多细粒度的对象,而且功能越复杂,需要的细粒度对象越多。 Java设计模式---桥接模式 结构模式---桥接模式(Bridge)Bridge模式是一种抽象与其实现相分离的模式。它主要应用于:当事物是一组变化量,和对这些事物的操作方法(实现)也是一组变化量的情况,也就是说它们都是多变的。 Java设计模式---享元模式 结构模式---享元模式(Flyweight)运用共享技术有效地支持大量细粒度对象。也就是说在一个系统中如果有多个相同的对象,那么只共享一份就可以了,不必每个都去实例化一个对象。Flyweight模式是一个提高程序效率和性能的模式,会大大加快程序的运行速度。例如:Xml文件中的数据处理。 Java设计模式---行为模式 行为模式 模板模式(Template) 备忘机制模式(Memento) 观察者模式(Observer) 职责链模式(ChainofResponsibility) 命令模式(Command) 状态模式(State) 策略模式(Strategy) 中介者模式(Mediator) 解释器模式(Interpreter) 参观者模式(Visitor) Java设计模式---行为模式 行为模式---观察者模式(Observer)定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知并自动更新。具体的说,如果我们希望网上商店的商品在名称、价格等方面有变化时,系统就能自动通知会员,这时就需要使用Observer模式。 行为模式---观察者模式 观察者模式UML 行为模式---观察者模式 观察者模式特点 优点: 观察者模式在被观察者和观察者之间建立一个抽象的耦合。被观察者角色所知道的只是一个具体观察者列表,每一个具体观察者都符合一个抽象观察者的接口。被观察者并不认识任何一个具体观察者,它只知道它们都有一个共同的接口。 由于被观察者和观察者没有紧密地耦合在一起,因此它们可以属于不同的抽象化层次。如果被观察者和观察者都被扔到一起,那么这个对象必然跨越抽象化和具体化层次。 观察者模式支持广播通讯。被观察者会向所有的登记过的观察者发出通知 缺点: 如果一个被观察者对象有很多的直接和间接的观察者的话,将所有的观察者都通知到会花费很多时间。 如果在被观察者之间有循环依赖的话,被观察者会触发它们之间进行循环调用,导致系统崩溃。在使用观察者模式是要特别注意这一点。 如果对观察者的通知是通过另外的线程进行异步投递的话,系统必须保证投递是以自动的方式进行的。 虽然观察者模式可以随时使观察者知道所观察的对象发生了变化,但是观察者模式没有相应的机制使观察者知道所观察的对象是怎么发生变化的。 Java设计模式---行为模式 行为模式---策略模式(Str

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值