• 桥接模式


    在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。

    代码1:抽象部分,将实现部分剥离后的部分/

        public abstract class AbstractRoad
        {
            protected AbstractCar car;
            public AbstractCar Car
            {
                set
                {
                    car = value;
                }
            }
    
            public abstract void Run();
        }
    
        //高速公路
        public class SpeedWay : AbstractRoad
        {
            public override void Run()
            {
                car.Run();
                Console.WriteLine("高速公路上行驶");
            }
        }
    
        //市区街道
        public class Street : AbstractRoad
        {
            public override void Run()
            {
                car.Run();
                Console.WriteLine("市区街道上行驶");
            }
        }
    }
    

    代码2:实现部分,剥离出来的维度

    //抽象汽车 
        public abstract class AbstractCar
        {
            public abstract void Run();
        }
    
        //小汽车;
        public class Car : AbstractCar
        {
            public override void Run()
            {
                Console.Write("小汽车在");
            }
        }
    
        //公共汽车
        public class Bus : AbstractCar
        {
            public override void Run()
            {
                Console.Write("公共汽车在");
            }
        }
    

    代码3:客户端

     static void Main(string[] args)
            {
                
                //男人开着公共汽车在高速公路上行驶;
                Console.WriteLine("=========================");
    
                AbstractRoad Road3 = new SpeedWay();
                Road3.Car = new Bus();
    
                people p = new Man();
                p.Road = Road3;
                p.Run();
    
                Console.Read();
            }
    

      

  • 相关阅读:
    poj_1084 剪枝-IDA*
    搜索算法
    poj_1475 BFS+BFS
    chrome浏览器经常无响应
    charles抓包工具的使用:手机抓包设置和安装证书
    charles抓包工具的使用:概述
    不同局域网如何利用charles对app进行抓包
    fiddler之使用教程(一)
    一点感触
    单元测试框架处理多组数据的另一种写法:基于构造函数和超继承
  • 原文地址:https://www.cnblogs.com/wuMing-dj/p/3361271.html
Copyright © 2020-2023  润新知