• brige设计模式


    ///brige设计模式
    ///解决层次之间的依赖关系
    namespace C
    {
        public abstract class AddressBook
        {
            public abstract void Add();
            public abstract void Find();
            public abstract void Delete();
        }
    
        /// <summary>
        /// 品牌M的通讯录
        /// </summary>
        public class AddressBookM:AddressBook
        {
    
            public override void Add()
            {
                throw new NotImplementedException();
            }
    
            public override void Find()
            {
                throw new NotImplementedException();
            }
    
            public override void Delete()
            {
                throw new NotImplementedException();
            }
        }
    
        class Game
        {
            public virtual void Run()
            {
            }
        }
    
        /// <summary>
        /// 当频繁给类增加新功能,应该使用类的聚合和组合
        /// </summary>
        class Phone
        {
            #region Error
    
            //组合一个通讯录功能。
            AddressBook book;
    
            ///****错误概念******
            ///根据开发闭合原则,增加新功能的时候,增加对另一个对象的引用。?
            ///增加一种游戏  
            ///****错误概念******
             Game game;
    
             public void AddBook()
             {
                 book.Add();
             }
    
             public void GameRun()
             {
                 game.Run();
             }
    
            #endregion
    
             ///*************正确概念**************
            ///开发闭合原则是:对已经存在的类修改是不允许的,  对增加新功能是允许
            ///因为把手机的功能抽象成一个类
            ///*************正确概念*************
             PhoneSoft phoneSoft;
    
             public void RunFunction()
             {
                 phoneSoft.Run();
             }
    
            /// <summary>
            /// 设置成不同的手机软件,如通讯录、游戏等
            /// </summary>
            /// <param name="ps"></param>
             public void SetPhoneSoft(PhoneSoft ps)
             {
                 this.phoneSoft = ps;
             }
        }
    
        /// <summary>
        /// 把变化的手机功能,抽象成一个类
        /// </summary>
        class PhoneSoft
        {
            public virtual void Run()
            {
    
            }
        }
    
        class PhoneGame:PhoneSoft
        {
            public override void Run()
            {
                base.Run();
                Console.WriteLine("This is game runnning");
            }
        }
    
        class TestBrige
        {
            public static void Run()
            {
                Phone p = new Phone();
                p.SetPhoneSoft(new PhoneGame());
                p.RunFunction();
            }
        }
    }

    brige设计模式

  • 相关阅读:
    内存映射文件原理探索(转载)
    虚拟内存原理
    CSAPP-链接
    CSAPP-程序优化
    CSAPP-过程调用,数据存储,缓冲区溢出
    【数学,方差运用,暴力求解】hdu-5037 Galaxy (2014鞍山现场)
    【贪心+一点小思路】Zoj
    【几何模板加点小思路】hdu-4998 Rotate
    【背包问题】【出来混总是要还的...】总结+入门练手题
    【优先队列】【最近连STL都写不出来了/(ㄒoㄒ)/~~】hdu_5360/多校#6_1008
  • 原文地址:https://www.cnblogs.com/363546828/p/3302820.html
Copyright © 2020-2023  润新知