教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

经典的GOF设计模式笔记(10)

来源:网络收集 时间:2026-10-01
导读: 其中CoffeeImp 是加不加奶的行为接口,看其代码如下: public abstract class CoffeeImp { 28 东方标准 http://soft.oneedu.cn public abstract void pourCoffeeImp(); } 现在我们有了两个抽象类,下面我们分别对其进

其中CoffeeImp 是加不加奶的行为接口,看其代码如下: public abstract class CoffeeImp {

28

东方标准 http://soft.oneedu.cn

public abstract void pourCoffeeImp(); }

现在我们有了两个抽象类,下面我们分别对其进行继承,实现concrete class: //中杯

public class MediumCoffee extends Coffee {

public MediumCoffee() {setCoffeeImp();} public void pourCoffee() {

CoffeeImp coffeeImp = this.getCoffeeImp();

//我们以重复次数来说明是冲中杯还是大杯 ,重复2次是中杯 for (int i = 0; i < 2; i++) {

coffeeImp.pourCoffeeImp(); } } }

//大杯

public class SuperSizeCoffee extends Coffee {

public SuperSizeCoffee() {setCoffeeImp();} public void pourCoffee() {

CoffeeImp coffeeImp = this.getCoffeeImp();

//我们以重复次数来说明是冲中杯还是大杯 ,重复5次是大杯 for (int i = 0; i < 5; i++) {

coffeeImp.pourCoffeeImp(); } } }

上面分别是中杯和大杯的具体实现.下面再对行为CoffeeImp进行继承: //加奶

public class MilkCoffeeImp extends CoffeeImp {

MilkCoffeeImp() {}

public void pourCoffeeImp() {

System.out.println(\加了美味的牛奶\ } }

//不加奶

public class FragrantCoffeeImp extends CoffeeImp {

29

东方标准 http://soft.oneedu.cn

FragrantCoffeeImp() {}

public void pourCoffeeImp() {

System.out.println(\什么也没加,清香\ } }

Bridge模式的基本框架我们已经搭好了,别忘记定义中还有一句:动态结合,我们现在可以喝到至少四种咖啡: 1.中杯加奶 2.中杯不加奶 3.大杯加奶 4.大杯不加奶

看看是如何动态结合的,在使用之前,我们做个准备工作,设计一个单态类(Singleton)用来hold当前的CoffeeImp:

public class CoffeeImpSingleton {

private static CoffeeImp coffeeImp;

public CoffeeImpSingleton(CoffeeImp coffeeImpIn) {this.coffeeImp = coffeeImpIn;}

public static CoffeeImp getTheCoffeeImp() {

return coffeeImp; } }

看看中杯加奶 和大杯加奶 是怎么出来的: //拿出牛奶

CoffeeImpSingleton coffeeImpSingleton = new CoffeeImpSingleton(new MilkCoffeeImp()); //中杯加奶

MediumCoffee mediumCoffee = new MediumCoffee(); mediumCoffee.pourCoffee(); //大杯加奶

SuperSizeCoffee superSizeCoffee = new SuperSizeCoffee(); superSizeCoffee.pourCoffee();

注意: Bridge模式的执行类如CoffeeImp和Coffee是一对一的关系, 正确创建CoffeeImp是该模式的关键。

Bridge模式在EJB中的应用

EJB中有一个Data Access Object (DAO)模式,这是将商业逻辑和具体数据资源分开的,因为不同的数据库有不同的数据库操作。将操作不同数据库的行为独立抽象成一个行为接口DAO。如下:

1.Business Object (类似Coffee)

实现一些抽象的商业操作:如寻找一个用户下所有的订单, 涉及数据库操作都使用DAOImplementor。 2.Data Access Object (类似CoffeeImp)

30

…… 此处隐藏:75字,全部文档内容请下载后查看。喜欢就下载吧 ……
经典的GOF设计模式笔记(10).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/603940.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150份
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150份
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)