`
chendw_hz
  • 浏览: 10685 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

桥梁设计模式(柄体设计模式)

 
阅读更多

桥梁设计是将抽象化和实现化分离。抽象化就是指模型的抽象化,是实现化是行为的实现化。这个是模式讲模型和行为进行分离。然后让各自的两个等级结构各自独立的变化。然后行为的等级结构组合到模型的等级结构中。可以任意组合。实现多项功能。

角色如下:

 抽象化角色:实际上是对实体领域对象的抽象,不包含这个实体的行为实体。但是具体子类会保存实现化角色的引用。

修正抽象化角色:这个实际上抽象化角色的子类。但是会和实现化角色组合一起产生新的新的行为。

实现化角色:对领域对象变化的行为的封装。把行为进行抽象化。

具体实现化角色:实现化角色的子类。

实际上桥梁模式对领域对象和行为进行分离的典型应用模式。领域实体对象和行为两个等级各自变化。然后组合他们产生不同行为。

也是开闭原则和聚合/组合使用原则典型应用的模式。

 

如何使用:

以人为例。分别以男人穿皮靴走路。女人穿高靴子走路。还有打赤脚走路。还有的是开车的。

那么男人是否可以穿高跟靴子走路。为了动态组合,是可以的。分别以人作为一个等级结构。以XX方式走路作为行为的一个等级结构。然后动态组合他们产生不同行为

男人穿皮靴走。穿高靴子走路(也可以)

女人穿皮靴走路。穿高跟靴子走路如下:

//抽象实体对象角色:人

public interface Person{

   //人的行为抽象方法。

   public void operation();

}

 

//男人改有什么样子行为

public class  ManPerson implements Person{

 //走路行为的接口的引用 

 private Walk walk;

  public  ManPerson(Walk walk){

      this.walk=walk; 

 }

//行为操作

public void operation(){

  sex();

  walk.manner();

 }

 

//性别 男人

private void sex(){

   System.out.println("我是男人");

 }

}

 

//女人实体领域对象。引用行为走路接口

public class WomanPerson implements Person{

  //走路

  private Walk walk;

  public WomanPerson(Walk walk){

     this.walk =walk;

 }

   //人的行为 委托给行为的类去执行

    public void operation(){

         sex();

        walk.manner();

    }

 

    private void sex(){

       System.out.println("我是女人!")

    }

}

//行为类 走路

public interface Walk{

  //走路方式的行为

  public void manner();

}

 

//高跟靴走路的行为

public class HighHeelBootsWalk implements Walk{

  //穿高跟靴走路的方式

  public void manner(){

      System.out.println("我是穿高跟靴走路的!");

 }

}

 

//皮靴的走路类

public  class LeatherBootsWalk implements Walk{

  //我要穿皮靴的走路方式

 public void manner(){

   System.out.println("我要穿皮靴进行走路!");

 }

}

 

客户端调用

public class client{

    public static void main(String[] args){

       //高跟靴走路

      Walk highWalk = new HighHeelBootsWalk ();

       Walk leatherWalk = new LeatherBootsWalk ();

       //男人高跟靴子组合

       Person manPerson = new ManPerson(leatherWalk );

       Person womenPerson = new WomanPerson(highWalk);

       manPerson.operation();

      womenPerson.operation();

   }

 }

 

//一打印结果

我是男人!

我要穿皮靴进行走路!;

我是女人!

我是穿高跟靴走路的!

还可以男人穿高靴子走路 女人穿皮靴走路多钟组合方式。比较灵活。如果新增增其他的组合行为。只需要添加行为对象子类的行为类就可以了。

符合开闭原则。

应用场景:

1.如果需要实体领域对对象和行为对象更加灵活的组合方式时,避免两个层次建立静态的关系。

2,行为对象的增加不影响客户端的代码修改

3,一个构件多余一个实体领域对象和行为对象,且需要他们动态组合时。

4,尽量使用组合

本模式的核心是实体对象对象和行为对象的分离。切实体对象和行为对象有多个组合时才比较适合使用柄体模式

分享到:
评论

相关推荐

    设计模式之桥梁模式

    桥梁模式你值得拥有,简单实用易上手,不能错过的实例。

    设计模式之桥梁模式实现

    设计模式之桥梁模式的Java版本实现和UML类图

    设计模式C++学习之桥梁模式(Bridge)

    设计模式C++学习之桥梁模式(Bridge)

    C#设计模式.PDF

    完整的C#设计模式PDF版 C#设计模式(1) 4 一、 C# 面向对象程序设计复习 5 二、 设计模式举例 5 三、 先有鸡还是先有蛋? 7 四、 大瓶子套小瓶子还是小瓶子套大瓶子? 8 五、 .net本质 9 C#设计模式(2) 11 一、 ...

    小D深入浅出设计模式+框架源码剖析实战

    ├─第一章 旭瑶-小滴架构师成长系列软件设计模式课程介绍 │ 1.2设计模式全家桶课程大纲速览.mp4 │  ├─第二章 想成为架构师的你,不可不知道的...│ 6.1-接口之间的桥梁-适配器设计模式你知道多少.mp4 │ 6.4

    基于设计模式的画图程序

    该系统是一个画图程序,我们要用设计模式的思想来设计系统结构,然后实现基本图形的绘制功能。 1.1 设计模式要求 至少在其中运用 3 种模式,其中涉及到的模式有装饰模式、策略模式、桥梁模式三种。 1.2 画图基本要求...

    java设计模式

    目录: 前 言 第一部分 大旗不挥,谁敢冲锋——热身篇 第1章 单一职责原则 1.1 我是“牛”类,我可以担任多职吗 1.2 绝杀技,打破你的传统思维 1.3 我单纯,所以我快乐 1.4 最佳实践 ...附录:23个设计模式

    设计模式课程设计- 画 图 程 序.doc

    该系统是一个画图程序,我们要用设计模式的思想来设计系统结构,然后实现基本图形的绘制功能。 1.1 设计模式要求 至少在其中运用 6 种模式,其中涉及到的模式有装饰模式、策略模式、桥梁模式三种。 1.2 画图基本要求...

    深入浅出设计模式

    深入浅出设计模式,比head first更易懂,共讲解了22种设计模式: 工厂模式 单例模式 建造模式 原型模式 适配器模式 桥梁模式 组合模式 装饰模式 门面模式 享元模式 代理模式 责任链模式 命令模式 解析器模式 迭代器...

    设计模式实例 装饰 工厂 桥梁 观察者

    设计模式实例,java语言开发。 包括:工厂模式,观察者模式,装饰模式和桥梁模式。

    C#设计模式大全

    C#设计模式(1) 一、 C# 面向对象程序设计复习 二、 设计模式举例 三、 先有鸡还是先有蛋? 四、 大瓶子套小瓶子还是小瓶子套大瓶子? 五、 .net本质 C#设计模式(2) 一、 "开放-封闭"原则(OCP) 二、 ...

    深入浅出java设计模式(高清中文PDF)

    文件类型为PDF文件,此文档对20多种java设计模式进行了详细讲解,在中文讲解的过程中还附有代码示例给学习者进行参考,使学习者通过实践更容易理解设计模式的原理。 本文档目录: 1.工厂模式 2.单例模式 3.建造...

    C#23种设计模式_示例源代码及PDF

    解释器模式将描述怎样 在 有了一个简单的文法后, 使用模式设计解释这些语句。 在解释器模式里面提到的语言是指任 何解释器对象能够解释的任何组合。在解释器模式中需要定义一个代表 文法的命令类的等 级结构,也...

    Java24种设计模式,Java24种设计模式,24种设计模式,学会了这24种设计模式,可以打遍天下无敌手,设计模式非常重要

    11、桥梁模式BRIDGE PATTERN 12、命令模式COMMAND PATTERN 13、装饰模式DECORATOR PATTERN 14、迭代器模式ITERATOR PATTERN 15、组合模式COMPOSITE PATTERN 16、观察者模式OBSERVER PATTERN 17、责任链模式 18、...

    三层架构及设计模式(抽象工厂实现)

    三层架构及设计模式(抽象工厂实现) <br> 1. 三层架构实现,把表现层(WebUI)与数据访问层(DAL)分开,使用业务逻辑进行处理(BLL), 避免了把数据信息暴露在表现层, 从而提供了程序的性能,使用业务逻辑...

    基于设计模式的绘图程序

    该系统是一个画图程序,我们要用设计模式的思想来设计系统结构,然后实现基本图形的绘制功能。 1.1 设计模式要求 至少在其中运用 3 种模式,其中涉及到的模式有装饰模式、策略模式、桥梁模式三种。 1.2 画图基本要求...

    java 23种设计模式.7z

    java 设计模式 单例设计模式 工厂设计模式 装饰设计模式 策略模式 代理模式 多例模式 抽象工厂模式 门面模式 适配器模式 模板方法模式 建造者模式 桥梁模式...

    java 设计模式(列如:单列,工厂,桥梁,===)

    java设计模式 设计模式(列如:单列,工厂,桥梁,===)

    学习php设计模式 php实现桥梁模式(bridge)

    主要介绍了php设计模式中的桥梁模式,使用php实现桥梁模式,感兴趣的小伙伴们可以参考一下

    java设计模式资源下载

    策略模式、代理模式、单例模式、多例模式、工厂方法模式、抽象工厂模式、观察这模式、适配器模式、门面模式、桥梁模式

Global site tag (gtag.js) - Google Analytics