当前位置: 首页 > 编程笔记 >

c#桥接模式(bridge结构模式)用法实例

秦宏硕
2023-03-14
本文向大家介绍c#桥接模式(bridge结构模式)用法实例,包括了c#桥接模式(bridge结构模式)用法实例的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了c#桥接模式(bridge结构模式)用法。分享给大家供大家参考。具体分析如下:

一般来说,Bridge模式使用“对象间的组合关系”解耦了抽象和实现之间固有的绑定关系,使得抽象(Tank的型号)和实现(不同的平台)可以沿着格子的维度来变化。所谓抽象和实现沿着各自维度的变化,即“子类化”它们(比如不同的Tank型号子类,和不同的平台子类),得到各个子类之后,便可以任意组合它们,从而获得不同平台上的不同型号。

在前面的玩家中每增加一个行为,就必须在每个玩家中都增加,通过桥接模式将行为提取出来了,减少变化

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace adapterpattern

{

    public partial class bridge : Form

    {

        public bridge()

        {

            InitializeComponent();

        }

 

        private void btnDisplay_Click(object sender, EventArgs e)

        {

            play p1 = new play1();

            p1.setPlayAction(new move());

            p1.run();

            this.listBox1.Items.Add(p1.playstring);

            play p2 = new play2();

            p2.setPlayAction(new jump());

            p2.run();

            this.listBox1.Items.Add(p2.playstring);

        }

    }

    //意图(Intent)将抽象部分与实现部分分离,使它们都可以独立地变化。

    public abstract class play//抽象部分

    {

        public string playstring { get; set; }

        protected playAction pa;

        public void setPlayAction(playAction pa)//使用组合

        {

            this.pa = pa;

        }

        public abstract void action();//抽象部分变化

        public void run()

        {

            pa.action();//执行实现部分

            action();

        }

    }

    public class play1 : play

    {

        public override void action()

        {

            playstring = "play1" + pa.actionstring;

        }

    }

    public class play2 : play

    {

        public override void action()

        {

            playstring = "play2" + pa.actionstring;

        }

    }

    public abstract class playAction//对实现部分进行抽象

    {

        public string actionstring;

        public abstract void action();

    }

    public class move : playAction//实现玩家移动行为

    {

        public override void action()

        {

            actionstring = "move";

        }

    }

    public class jump : playAction//实现玩家跳跃行为

    {

        public override void action()

        {

            actionstring = "jump";

        }

    }

}

希望本文所述对大家的C#程序设计有所帮助。

 类似资料:
  • 本文向大家介绍C++设计模式之桥接模式(Bridge),包括了C++设计模式之桥接模式(Bridge)的使用技巧和注意事项,需要的朋友参考一下 桥接模式属于先天模式,这里的先天模式就是说一开始就要把结构搭建好,方便后来的扩展,而不是对已经出现的模块和接口进行改进扩展的。桥接的核心在于实体类和操作类之间的聚合关系,这个聚合关系就是我们所说的"桥",不同于装饰、代理和适配器模式的中的聚合关系,桥接不存

  • 本文向大家介绍java设计模式之桥接模式(Bridge),包括了java设计模式之桥接模式(Bridge)的使用技巧和注意事项,需要的朋友参考一下 概述 桥接模式一种结构型模式,它主要应对的是:由于实际的需要,某个类具有两个或以上的维度变化,如果只是用继承将无法实现这种需要,或者使得设计变得相当臃肿。 桥接模式的做法是把变化的部分抽象出来,使变化部分与主类分离开来,从而将多个维度的变化彻底分离。最

  • 模式定义 将抽象部分(业务功能)与实现部分(平台实现)分离,使它们都可以独立地变化。 要点总结 Bridge模式使用“对象间的组合关系”解耦了抽象和实现之间固有的绑定关系,使得抽象和实现可以沿着各自的维度来变化。所谓抽象和实现沿着各自纬度的变化,即“子类化”它们。 Bridge模式有时候类似于多继承方案,但是多继承方案往往违背单一职责原则(即一个类只有一个变化的原因),复用性比较差。Bridge模

  • 当我们需要将抽象与其实现分离时,使用Bridge,以便两者可以独立变化。 这种类型的设计模式属于结构模式,因为这种模式通过在它们之间提供桥接结构来分离实现类和抽象类。 这种模式涉及一个接口,它充当一个桥梁,使具体类的功能独立于接口实现者类。 两种类型的类都可以在结构上进行更改而不会相互影响。 我们通过以下示例演示Bridge模式的使用,其中可以使用相同的抽象类方法但不同的桥实现者类以不同的颜色绘制

  • 本文向大家介绍Java设计模式之桥模式(Bridge模式)介绍,包括了Java设计模式之桥模式(Bridge模式)介绍的使用技巧和注意事项,需要的朋友参考一下 Bridge定义:将抽象和行为划分开来,各自独立,但能动态的结合。 为什么使用桥模式 通常,当一个抽象类或接口有多个具体实现(concrete subclass),这些concrete之间关系可能有以下两种: 1.这多个具体实现之间恰好是并

  • 本文向大家介绍Java  中桥接模式——对象结构型模式的实例详解,包括了Java  中桥接模式——对象结构型模式的实例详解的使用技巧和注意事项,需要的朋友参考一下 Java  中桥接模式——对象结构型模式的实例详解 一、意图 将抽象部分与它的实现部分分离,使他们都可以独立的变化。 二、适用性 以下一些情况使用Bridge模式 你不希望在抽象和它的实现部分之间有一个固定的绑定关系。例如这种情况可能因