zoukankan      html  css  js  c++  java
  • 松耦合设计模式 ^

    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();
            }
  • 相关阅读:
    linux常用快捷键
    msf远程调用OpenVAS
    (三)漏洞平台搭建-xssplatform
    (二)漏洞平台搭建-sql-lab
    (一)漏洞平台搭建-DVWA
    msf永恒之蓝漏洞利用命令总结
    解决kali无法全屏问题
    centos7源码安装mysql数据库
    【多数人的误区】十二生肖属相不是从春节开始算的!
    python元组不可变是指什么不可变
  • 原文地址:https://www.cnblogs.com/babyGee/p/2566023.html
Copyright © 2011-2022 走看看