`
usermapler
  • 浏览: 1348 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

java 设计模式之桥接模式

阅读更多
今天看了下设计模式中的桥接模式,发现还是很有趣味的,笔记之。举个例子,比如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,我喜欢去西餐厅吃西餐

   可以看到桥接模式还是很不错的哦,在实际应用中,比如一个程序,有三类不同的功能,而这个程序需要分别在不同的操作平台运行的话,可以大大减少子类的数量哦,当然对桥接模式更深的讨论可以参见园子里其他朋友的文章
分享到:
评论

相关推荐

    Java设计模式之桥接模式

    桥接模式(Bridge Pattern),将抽象部分与它的实现部分分离,使它们都可以独立地变化。更容易理解的表述是:实现系统可从多种维度分类,桥接模式将各维度抽象出来,各维度独立变化,之后可通过聚合,将各维度组合...

    java设计模式-桥接模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段...

    Java设计模式之桥接模式实例详解

    Java设计模式之桥接模式实例详解 桥接模式(Bridge Pattern)是一种结构型设计模式,它将抽象部分与它的实现部分分离,使它们都可以独立地变化。这种模式将继承关系转换为关联关系,从而降低了类与类之间的耦合,...

    计算机后端-Java-图解java设计模式070 桥接模式(5).avi

    计算机后端-Java-图解java设计模式070 桥接模式(5).avi

    计算机后端-Java-图解java设计模式068 桥接模式(3).avi

    计算机后端-Java-图解java设计模式068 桥接模式(3).avi

    计算机后端-Java-图解java设计模式067 桥接模式(2).avi

    计算机后端-Java-图解java设计模式067 桥接模式(2).avi

    计算机后端-Java-图解java设计模式066 桥接模式(1).avi

    计算机后端-Java-图解java设计模式066 桥接模式(1).avi

    计算机后端-Java-图解java设计模式069 桥接模式(4)-J.avi

    计算机后端-Java-图解java设计模式069 桥接模式(4)-J.avi

    设计模式之桥接模式

    桥接模式(Bridge Pattern)是设计模式中结构型模式的一种,它的主要目的是将抽象部分与实现部分解耦,使得它们可以独立地进行变化。在Java编程中,这种模式的应用可以帮助我们构建更加灵活、可扩展的代码结构。 ...

    java设计模式之桥接模式(Bridge)

    桥接模式(Bridge)是一种结构型设计模式,旨在将抽象部分与其实现部分分离,使得它们可以独立地进行变化。在Java编程中,桥接模式可以帮助我们处理多维度的变化,避免过度使用继承导致的类爆炸问题。 在桥接模式中...

    java常用设计模式-桥接模式

    Java 桥接模式 设计模式 桥接模式(Bridge Pattern)是一种常用的设计模式,它将抽象化和实现化解耦,使用封装、聚合以及继承等基本技术,将两个独立变化的维度通过抽象化的方式进行桥接,从而降低了它们之间的耦合...

    设计模式之桥接模式,内含可运行代码

    桥接模式是软件设计模式中的一种结构型模式,它的主要目的是为了实现抽象和实现的解耦,使得两者可以独立地进行扩展。在桥接模式中,抽象类(Abstraction)不直接引用具体实现(Implementation),而是通过一个桥接...

    设计模式之桥接模式.pdf

    ### 设计模式之桥接模式详解 #### 一、桥接模式概述 桥接模式(Bridge Pattern)是一种常用的结构型设计模式,它主要用于解决抽象部分和实现部分的耦合问题。这种模式通过将抽象和实现分离,使得两者可以独立变化...

    java桥接模式java桥接模式.doc

    【Java桥接模式】是一种设计模式,用于将抽象部分与实现部分分离,使得它们可以独立进行变化。在上述场景中,我们看到一个典型的桥接模式应用:发送提示消息功能。 1. 场景问题: - 发送提示消息功能涉及到不同...

    设计模式 - 桥接模式

    桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立进行变化。这种模式在软件工程中被广泛应用于处理组件之间的耦合问题,使得系统具有更好的可扩展性和灵活性。 桥接模式的主要组成部分...

    JAVA-设计模式-结构型模式-桥接模式

    JAVA-设计模式-结构型模式-桥接模式

    java设计模式【之】桥接模式【源码】【场景:老师上课】

    java设计模式【之】桥接模式【源码】【场景:老师上课】 * 桥接模式 * 将抽象与实现分离,通过组合抽象进行交互 * (由指定人员制定接口规则,由其他人员实现接口规则) * * 桥接:描述的是关联关系,实现上...

    《Java设计模式》刘伟 课后习题及模拟试题答案.rar

    《Java设计模式》是刘伟老师的一本经典教材,它深入浅出地讲解了软件设计中的重要概念——设计模式。设计模式是经验丰富的开发者在解决常见问题时总结出的通用解决方案,是软件开发中的智慧结晶。这本书的课后习题和...

    桥接模式和策略模式的区别,内含可运行代码和两者详细区别

    桥接模式和策略模式是软件设计模式中的两种重要模式,它们在实现上有着相似之处,但各自的应用场景和设计理念有所不同。下面将详细阐述这两种模式的特点、区别以及它们在实际编程中的应用。 首先,桥接模式(Bridge...

Global site tag (gtag.js) - Google Analytics