适配器模式
当我们有一个可以立即使用的类时,由于不符合客户端使用的接口时,我们需要创建一个适配器(adpter),以使当前可用的类能够被客户端对象使用。而在适配已有类时,存在两种方法,一种是通过继承的方式来适配,一种是通过引用(组合)的方式来适配,前者叫类适配,而后者加对象适配。
适配器的两种Java实现在这里可以下载。
以下是类适配的UML类图:
以下是对象适配的UML类图:
构建模式
构建模式是创建模式的一种,该模式有点类似与抽象工厂模式,不同的构建对象构建不同的产品,但构建模式与抽象工厂模式不同在于,构建模式是一步步构建出被构建对象的,即产品对象。
以下是构建模式的Java实现(点击这里下载)。
以下是构建模式的UML类图:
合成模式
合成模型(composite)将对象组织在树形结构中,可以用来描述整体与局部的关系,客户端可以将单纯元素和复合元素统一看待。
这里是合成模式Java实现的代码下载(点击下载)
合成模式有两种实现方式,两种实现方式的最重要的区别就在于对非叶子节点的操作是否对客户端透明,对客户端透明,那么客户端就不会感知到叶子节点和非叶子节点的不同,那么需要将对非叶子节点的操作定义到component接口中,但由于这些操作只是针对非叶子节点的,所以对于叶子节点是没有任何意义的,但由于接口已经定义在了component中,所以,所有的叶子节点都将于实现一次对于自己来说没有意义的方法。这即是透明式,以下是类设计图:
另外一种实现方式就是区别对待叶子节点和非叶子节点,在component接口中仅仅定义了对叶子节点和非叶子节点都有意义的操作,而对非叶子节点才有意义的操作,单独定义在非叶子节点上。这样实现的方式的好处是,对客户端式安全的,不会由于在叶子节点对象上调用到不该调用的方法(这里指定义在非叶子节点上的方法),缺点即是,客户端会感知到存在不同的实现节点,即叶子节点和非叶子节点,以下是该实现的类设计图:
装饰模式
装饰模式(Decorator)是以对客户端透明的方式对对象功能的一种扩展,是基础方式的一种更好的替代方案。装饰模式的优点在于,装饰模式扩展对象比基础方式灵活,同时由很多小的装饰对象,可以组合出很多不同的对象行为。装饰模式的优点也是其缺点,首先,由于装饰模式比对象继承更加灵活,所以需要产生大量的小对象,即装饰对象本身,另外,就是由于其灵活性,导致出错的可能性更高,不通过的装饰结果,可能出现与预期不符的对象扩展。
装饰模型的Java实现代码点击这里下载
装饰模式的UML类图如下:
分享到:
相关推荐
用Java实现的23种设计模式,完整的代码,本想无积分下载来着,后来一想还是设置点儿把,毕竟我不喜欢不劳而获的思想,希望每个TX在下载别人的资源的同时,也积极上传资源与他人一起分享!
23种设计模式的Java实现23种设计模式的Java实现23种设计模式的Java实现23种设计模式的Java实现23种设计模式的Java实现
设计模式之责任链模式Java版本实现和UML类图设计
设计模式JAVA实现源码,设计模式JAVA实现源码
设计模式之观察者模式Java版本实现和UML类设计图
策略模式、观察者模式、装饰模式、适配器模式、单例模式、工厂方法模式、门面模式,java语言实现的例子。
二十三种设计模式JAVA实现源码.zip 二十三种设计模式JAVA实现源码.zip 二十三种设计模式JAVA实现源码.zip 二十三种设计模式JAVA实现源码.zip
设计模式Java版,可以更好的掌握设计模式的应用,欢迎大家下载学习。
23种设计模式的JAVA代码实现,详细案例说明 代码精简,是学习不可多得的资料
23种设计模式的java实现-Builder
设计模式之解释器模式的Java版本实现和UML类图设计
JAVA23中设计模式疯狂Java讲义最新版本
java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式...
设计模式之装饰模式Java实现和UML类设计图
Java代码积累:并发 设计模式 数据结构 使用容器 实用 类 基础知识 并发性 演示线程的生命周期 生产者-消费者 设计模式参考《大话设计模式》 工厂简单模式 创造型模式 工厂方法模式 抽象工厂模式 原型模式 建造者...
23种设计模式的java实现源码 此目录里包括了一书中所有23种设计模式的实现(Java 版)源码 关于代码的几点说明: 1. 代码为根据个人对Design Pattern的学习理解写出(>90%原创), 难免有错误的地方,希望...
总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元...
23种设计模式的java代码实现,23种设计模式的java代码实现
Java实现坦克大战游戏(软件设计模式).zipJava实现坦克大战游戏(软件设计模式).zip Java实现坦克大战游戏(软件设计模式).zipJava实现坦克大战游戏(软件设计模式).zip Java实现坦克大战游戏(软件设计模式).zipJava实现...
21种设计模式java实现版本代码,带讲解