摘要:
一、桥梁(Bridge)模式桥梁模式是一个非常有用的模式,也是比较复杂的一个模式。熟悉这个模式对于理解面向对象的设计原则,包括"开-闭"原则(OCP)以及组合/聚合复用原则(CARP)都很有帮助。理解好这两个原则,有助于形成正确的设计思想和培养良好的设计风格。注:《Java与模式》一书认为Bridge模式不是一个使用频率很高的模式,我不太赞同,我认为Bridge模式中蕴涵了很多设计模式的关键思想在里面,所以我这里采纳了《Design Patterns Explained》一书的作者Alan Shalloway与James R. Trott的观点:The Bridge pat 阅读全文
摘要:
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待。合成模式:安全式和透明式合成模式1,安全式合成模式抽象构件角色:这是一个抽象角色,它给参加组合的对象规定一个接口树叶构件角色:代表参加组合的树叶对象,一个树叶没有下级的子对象,定义参加组合的原始对象的行为树枝构件角色:代表参加组合的有子对象的对象,并给出树枝构件对象的行为1.packagejavaPattern.composite;2.3.impor 阅读全文
摘要:
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 外部与一个子系统的通信必须通过一个统一的门面对象进行,这就是门面模式外部与一个子系统的通信必须通过一个统一的门面对象进行,这就是门面模式。一般而言,Facade模式是为了 降低子系统之间,客户端与实现化层之间的依赖性。当在构建一个层次化的系统时,也可以同过使用Facade模式定义系统中每一层的入口,从而简化层与层之 间的依 阅读全文
摘要:
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案一.UML示意图:二.组成部分:1.抽象构件:原始的功能接口2.具体构件:具体的原始功能类3.装饰角色:持有具体构件类的对象,以便执行原有功能4.具体装饰:具体扩展的功能在这里三.例子代码:使用装饰模式来演示一个对”行走”功能扩展的例子(听音乐+行走和唱歌+行走)1.抽象构件package com.eekq.decorator;publicinterface Component { /**原 阅读全文
摘要:
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 享元模式以共享的方式高效地支持大量的细粒度对象。享元对象能做到共享的关键是区分内蕴状态和外蕴状态。一个内蕴状态是存储在享元对象内部的,并且是不会随环境改变而有所不同的,因此,一个享元可以具有内蕴含状态并可以共享。一个外蕴状态是随环境改变而改变的,不可以共享的状态,享元对象的外蕴状态必须由客户端保存,并在享元对象被创建之后,在需要使用的时候再传入到享元对象内部。外蕴状态不可以影响享元对象的内蕴状态,它们是相互独立的。享元模式的种类:单纯享元模式和复合享元模式两 阅读全文
摘要:
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。代理模式是对象间的间接通信,间接通信可以给出较低的耦合关系,较强的合作关系,以及微妙的结构和易于复用的设计架构。代理模式的结构:抽象主题角色:声明了真实主题和代理主题的共同接口,这样一来在任何可以使用真实主题的地方都可以使用代理主题。代理主题角色:代理主题角色内部有对真实主题的易用,从而可以在任何时候操作真实主题对象。真实主题角色:定义了代理角色所代表的真实对象红酒代理商和红酒厂商都有销售 阅读全文