• 松耦合设计模式 ^


    1:首先了解两个概念:

    聚合:表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分

    合成:则是一种强的‘拥有’关系,体现了严格的不分和整体的关系,部分和整体的生命周期一样

    说明图:

    2:桥接模式:将抽象不分与它的实现部分分离,使它们可以独立地变化

                                            桥接模式(Bridge)结构图

    3:具体形象化的设计

    代码:

    View Code
    //手机品牌
        abstract class HandsetBrand
        {
            protected HandsetSoft soft;
    
            //设置手机软件
            public void SetHandsetSoft(HandsetSoft soft)
            {
                this.soft = soft;
            }
            //运行
            public abstract void Run();
            
    
        }
    
        //手机品牌N
        class HandsetBrandN : HandsetBrand
        {
            public override void Run()
            {
                soft.Run();
            }
        }
    
        //手机品牌M
        class HandsetBrandM : HandsetBrand
        {
            public override void Run()
            {
                soft.Run();
            }
        }
    
        //手机品牌S
        class HandsetBrandS : HandsetBrand
        {
            public override void Run()
            {
                soft.Run();
            }
        }
     
    View Code
    //手机软件
        abstract class HandsetSoft
        {
    
            public abstract void Run();
        }
    
        //手机游戏
        class HandsetGame : HandsetSoft
        {
            public override void Run()
            {
                Console.WriteLine("运行手机游戏");
            }
        }
    
        //手机通讯录
        class HandsetAddressList : HandsetSoft
        {
            public override void Run()
            {
                Console.WriteLine("运行手机通讯录");
            }
        }
    
        //手机MP3播放
        class HandsetMP3 : HandsetSoft
        {
            public override void Run()
            {
                Console.WriteLine("运行手机MP3播放");
            }
        }
    View Code
    static void Main(string[] args)
            {
                HandsetBrand ab;
                ab = new HandsetBrandN();
    
                ab.SetHandsetSoft(new HandsetGame());
                ab.Run();
    
                ab.SetHandsetSoft(new HandsetAddressList());
                ab.Run();
    
                ab = new HandsetBrandM();
    
                ab.SetHandsetSoft(new HandsetGame());
                ab.Run();
    
                ab.SetHandsetSoft(new HandsetAddressList());
                ab.Run();
    
                Console.Read();
            }
  • 相关阅读:
    java实现文件上传下载至ftp服务器
    理解java代理模式
    [置顶] 理解java中的线程池
    wait,notify,非阻塞队列实现生产者,消费者模型
    理解java阻塞队列BlockingQueue
    CentOS下安装配置Nginx
    putty笔记
    CentOs下安装jdk、MySql、Redis笔记
    简述yum和apt-get的区别
    Linux 文件颜色说明
  • 原文地址:https://www.cnblogs.com/babyGee/p/2566023.html
Copyright © 2020-2023  润新知