`
chendw_hz
  • 浏览: 11400 次
  • 性别: 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,尽量使用组合

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

分享到:
评论

相关推荐

    设计模式之桥梁模式

    桥梁模式是一种结构型设计模式,它将抽象部分与实现部分分离,使得它们可以独立地进行变化。这种模式的主要目的是为了将抽象化和实现化解耦,使得两者可以独立发展,增加了系统的灵活性。在实际开发中,当一个类有多...

    设计模式之桥梁模式实现

    桥梁模式(Bridge Pattern)是设计模式中的一种结构型模式,它的核心思想是将抽象部分与实现部分分离,使得它们可以独立地进行变化。在这个主题中,我们将深入探讨桥梁模式的原理、结构以及如何在Java中实现。 首先...

    您的设计模式.pdf。

    涵盖了策略模式、代理模式、单例模式、多例模式、工厂方法模式、抽象工厂模式、门面模式、适配器模式、模板方法模式、建造者模式、桥梁模式、命令模式、装饰模式、迭代器模式等十四种常用的设计模式。 策略模式...

    软件设计模式期末作业

    在软件开发领域,设计模式是经过时间和实践验证的解决方案模板,用于解决常见问题。本作业以“软件设计模式”为主题,特别关注了装饰模式、工厂模式和适配器模式的运用。这三种模式都是面向对象设计的核心部分,它们...

    JavaScript设计模式.pdf

    JavaScript设计模式.pdf JavaScript设计模式是指在软件开发中使用JavaScript语言编写的设计模式。这些设计模式旨在提高代码的重用性、可读性、维护性和扩展性。以下是JavaScript设计模式的知识点总结: 1. 单体...

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

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

    设计模式之美—学习笔记

    设计模式是软件工程中的一种最佳实践,它是在特定上下文中解决常见问题的经验总结。这些模式在不同的场景下被反复验证并被广泛接受,为开发者提供了一种标准的、可复用的解决方案。在这个“设计模式之美”的学习笔记...

    设计模式课程设计

    设计模式课程设计 本课程设计旨在使用设计模式来设计一个画图程序,实现基本图形的绘制功能和图形操作功能。通过使用设计模式,可以提高系统的灵活性和可维护性。 1. 需求分析 系统需求包括基本图形的绘制功能和...

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

    **桥梁模式(Bridge)**是一种结构型设计模式,它的主要目的是将抽象部分与其实现部分解耦,使得它们可以独立地进行变化。在C++编程中,这种模式尤其有用,因为它允许我们创建灵活且可扩展的系统,同时保持代码的低...

    【Java设计模式】《设计模式之禅》中的23种设计模式.zip

    【Java设计模式】《设计模式之禅》中的23种设计模式.zip 【Java设计模式】《设计模式之禅》中的23种设计模式.zip 【Java设计模式】《设计模式之禅》中的23种设计模式.zip 【Java设计模式】《设计模式之禅》中的23种...

    浅析23种软件设计模式

    浅析23种软件设计模式 软件设计模式是软件开发中的一种解决方案,旨在解决软件设计中的各种问题。下面我们将对23种常见的软件设计模式进行浅析。 1. 工厂模式:工厂模式的主要思想是将客户类和工厂类分开,客户类...

    DAO设计模式 DAO 设计模式 JAVA设计模式

    DAO(Data Access Object)设计模式是软件开发中一种常见的用于处理数据访问的模式,它将业务逻辑与数据访问逻辑分离,使得代码结构更加清晰,更易于维护和测试。在Java开发中,DAO模式广泛应用于数据库操作,为应用...

    C#设计模式.PDF

    根据提供的文档概览,我们可以对每个章节所涉及的设计模式进行详细的阐述和解释。下面将针对文档中提及的设计模式逐一展开,以便更好地理解这些模式的概念、结构、应用场景以及优缺点。 ### 1. 面向对象程序设计...

    经典的设计模式的书籍 <<设计模式>>

    《设计模式》是一本在IT领域中广为流传的经典著作,它深入浅出地阐述了软件工程中的设计模式,帮助开发者提升代码质量和可维护性。这本书涵盖了多种设计模式,其中包括了MVC(Model-View-Controller)模式以及工厂...

    MVC设计模式例子程序

    **MVC设计模式详解** MVC(Model-View-Controller)设计模式是一种广泛应用于软件开发,尤其是Web应用程序中的架构模式。它将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller),以此...

    设计模式相关资料

    设计模式不仅体现了良好的编程习惯,也是经验丰富的开发者与新手之间知识传承的桥梁。 在“设计模式”这个主题中,我们可以深入探讨以下几个关键知识点: 1. **设计原则**:设计模式的基础是面向对象设计的七大...

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

    所涉及的设计模式包括工厂模式、单例模式、建造模式、原型模式、适配器模式、桥梁模式、组合模式、装饰模式、门面模式、享元模式、代理模式、责任链模式、命令模式、解释器模式、迭代器模式、调停者模式、备忘录模式...

    设计模式的理解浅析

    ### 设计模式的理解浅析 #### 单例模式在共享数据中的应用 单例模式是一种常用的软件设计模式,它的核心在于确保某个类只有一个实例,并提供一个全局访问点。这种模式非常适用于那些在整个项目中需要一个共享访问...

    java设计模式,学java'的同志需要看看

    GoF设计模式在Java基础知识与高级框架如J2EE之间起到了桥梁的作用。对于Java开发者而言,理解设计模式有助于从单纯的语法层面提升到更高层次的抽象思维,掌握接口和抽象类的精髓。设计模式的核心理念是提高代码的可...

    NET框架与设计模式

    设计模式是软件工程中的重要概念,它代表了在特定上下文中解决常见问题的最佳实践。.NET框架提供了一个强大的平台,结合设计模式可以实现高效、可扩展的应用程序开发。 在.NET框架中,设计模式主要分为三类:创建型...

Global site tag (gtag.js) - Google Analytics