桥接模式(bridge结构模式)c#

桥接模式(bridge结构模式)c#简单例子

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

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";
        }
    }
}
时间: 2024-08-01 22:41:56

桥接模式(bridge结构模式)c#的相关文章

c#桥接模式(bridge结构模式)

桥接模式(bridge结构模式)c#简单例子 在前面的玩家中每增加一个行为,就必须在每个玩家中都增加,通过桥接模式将行为提取出来了,减少变化 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62

设计模式的征途—8.桥接(Bridge)模式

在现实生活中,我们常常会用到两种或多种类型的笔,比如毛笔和蜡笔.假设我们需要大.中.小三种类型的画笔来绘制12中不同的颜色,如果我们使用蜡笔,需要准备3*12=36支.但如果使用毛笔的话,只需要提供3种型号的毛笔,外加12个颜料盒即可,涉及的对象个数仅为3+12=15,远远小于36却能实现与36支蜡笔同样的功能.如果需要新增一种画笔,并且同样需要12种颜色,那么蜡笔需要增加12支,而毛笔却只需要新增1支.通过分析,在蜡笔中,颜色和型号两个不同的变化维度耦合在一起,无论对其中任何一个维度进行扩展,

创建模式、结构模式和行为模式在软件开发中解决的事情

创建模式 创建型模式,就是创建对象的模式,抽象了实例化的过程. 它帮助一个系统独立于如何创建.组合和表示它的那些对象. 关注的是对象的创建,创建型模式将创建对象的过程进行了抽象,也可以理解为将创建对象的过程进行了封装,作为客户程序仅仅需要去使用对象,而不再关心创建对象过程中的逻辑 结构模式 结构型模式是为解决怎样组装现有的类,设计他们的交互方式,从而达到实现一定的功能的目的. 结构型模式包容了对很多问题的解决.例如:扩展性(外观.组成.代理.装饰)封装性(适配器,桥接). 行为模式 行为型模式涉

结构型—桥接(Bridge)模式

1.意图: 将抽象部分(抽象接口)与它的实现部分(代码实现)分离,使它们都可以独立地变化. 理解:抽象部分是对外展现的接口(api),而实现部分是针对抽象接口提供的不同版本的功能实现,使两者独立变化指两者可以在各自的维度上自由变化,而不会产生太大的影响.如可以在api中添加新的接口,而不影响具体实现部分:可以在实现部分针对特定接口添加新的实现方式,而不影响抽象接口定义. 桥接模式将类的继承关系转变为类的聚合关系(见下图).对于抽象接口及其实现,Java中通常的实现方式是通过抽象类的继承或接口的实

组合模式【结构模式】

组合模式 Composite objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects and compositions of objects uniformly. 将对象组合成树形结构以表示"整体-部分"的层次结构, 组合模式允许客户端统一处理单个对象或组合对象. @Slf4j public class Compos

装饰者模式【结构模式】

public class Decorator { /** * 装饰者模式: * Attach additional responsibility to an object dynamically keeping the same interface. * Decorators provide a flexible alternative to subclassing for extending functionality. * 将额外的责任附加到一个动态保持相同接口的对象上,装饰者提供一种灵活的

桥接模式-Bridge(Java实现)

桥接模式-Bridge 桥梁模式的用意是"将抽象化(Abstraction)与实现化(Implementation)脱耦, 将"类的功能层次结构" 与 "类的实现层次结构"分离为两个独立的类层次结构. 类的实现层次接口 DisplayImpl接口 public interface DisplayImpl { void rawOpen(); void rawPrint(); void rawClose(); } StringDisplayImpl类 publ

Vmware虚拟机仅主机(Host-only)、桥接(Bridge)、NAT三种网络模式介绍

Vmware虚拟机仅主机(Host-only).桥接(Bridge).NAT三种网络模式介绍 给大家介绍一下虚拟机的三种网络模式,希望能对大家有所帮助. 虚拟机在创建完成以后,会在物理主机上创建两个虚拟连接vmnet1和vmnet8,想必大家都知道了吧. 下面开始讲一下这三种网络连接吧 仅主机(Host-only)模式: 仅主机模式,可以实现虚拟机和物理主机之间相互通信,但虚拟机无法与外网(Internet)之间互相通信. 如下图所示: 我们可以认为虚拟机网卡与vmnet1连接在一个虚拟的交换机

设计模式(八):Bridge桥接模式 -- 结构型模式

1. 概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度? 例子1:设想如果要绘制矩形.圆形.椭圆.正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色.绿色.蓝色等,此时至少有如下两种设计方案: •第一种设计方案是为每一种形状都提供一套各种颜色的版本. •第二种设计方案是根据实际需要对形状和颜色进行组合. 方案1: 方案2: