设计模式之桥接模式
来源:互联网 发布:精仿rmb淘宝交易 编辑:程序博客网 时间:2024/06/01 19:17
今天看了下设计模式中的桥接模式,发现还是很有趣味的,笔记之。举个例子,比如GG要约会MM,不同的MM喜欢喜欢不同的地点,
比如rose喜欢去电影院,KITTY喜欢去西餐厅,而TOM,peter 都是GG,他们要分别去约会这两位MM了,而约会的地点,全部由MM决定
首先是MM接口
package com.liao.bridge1;
public interface MM {
void date();
}
Rose:
package com.liao.bridge1;
public class Rose implements MM {
public void date()
{
System.out.println("我是Rose,我喜欢去电影院");
}
}
Kitty:
package com.liao.bridge1;
public class Kitty implements MM {
public void date()
{
System.out.println("我是kitty,我喜欢去西餐厅吃西餐");
}
}
GG的接口
package com.liao.bridge1;
public abstract class GG {
protected MM mm;
public abstract void dateplace();
//根据不同约的对象,返回不同的MM实例
protected MM chooseplace(String girl)
{
if (girl.equals("rose"))
{
return new Rose();
}
else if (girl.equals("kitty"))
{
return new Kitty();
}//默认约ROSE
else{
return new Rose();
}
}
}
TOM:
package com.liao.bridge1;
public class TOM extends GG{
private MM mm;
public TOM(String girl)
{
mm=chooseplace(girl);
}
public void dateplace()
{
mm.date();
}
}
Peter:
package com.liao.bridge1;
public class Peter extends GG{
private MM mm;
public Peter(String place)
{
mm=chooseplace(place);
}
public void dateplace()
{
mm.date();
}
}
主程序
package com.liao.bridge1;
public class Client{
public static void main(String[] args) {
System.out.println("我是TOM,我想约rose");
GG tom=new TOM("rose");
tom.dateplace();
System.out.println("我是TOM,我想约kitty");
tom=new TOM("kitty");
tom.dateplace();
System.out.println("我是Peter,我想约rose");
GG peter=new Peter("rose");
peter.dateplace();
System.out.println("我是Peter,我想约kitty");
peter=new Peter("kitty");
peter.dateplace();
}
}
运行起来
我是TOM,我想约rose
我是Rose,我喜欢去电影院
我是TOM,我想约kitty
我是kitty,我喜欢去西餐厅吃西餐
我是Peter,我想约rose
我是Rose,我喜欢去电影院
我是Peter,我想约kitty
我是kitty,我喜欢去西餐厅吃西餐
可以看到桥接模式还是很不错的哦,在实际应用中,比如一个程序,有三类不同的功能,而这个程序需要分别在不同的操作平台运行的话,可以大大减少子类的数量哦,当然对桥接模式更深的讨论可以参见园子里其他朋友的文章
- 设计模式之桥接模式
- C# 设计模式 之 桥接模式
- c#设计模式之[桥接模式]
- 设计模式之桥接模式
- 设计模式之-Bridge-- 桥接模式
- 设计模式之桥接模式
- 设计模式之桥接模式
- 设计模式之Bridge(桥接模式)
- 设计模式之桥接模式
- 设计模式之Bridge(桥接模式)
- 设计模式之桥接模式BridgePattern
- C# 设计模式之桥接模式
- 设计模式之桥接模式
- 设计模式之桥接模式
- Java 设计模式 之 桥接模式
- Java 设计模式 之 桥接模式
- Java 设计模式 之 桥接模式
- 设计模式之桥接模式
- 乖离率
- 深复制和浅复制
- asp.net 2.0 ajax中实现弹出窗口报警提示
- Oracle Hints详解
- asp.net 2.0 ajax中使用PopupControlExtender
- 设计模式之桥接模式
- 仿QQ hd 双滑动面板
- asp ajax 1.0中的scriptmanagerproxy
- shell 调试
- mac git 终端颜色配置
- sql server 2005数据库转换到SQL 20000数据库方法
- ORACLE 参数之 ASM_DISGROUPS
- asp.net ajax 1.0中detailview与updatepanel混合使用的例子
- (转)用HttpClient来模拟浏览器GET POST