>백엔드 개발 >C#.Net 튜토리얼 >C# 디자인 패턴의 브리지 모드에 대한 자세한 코드 설명

C# 디자인 패턴의 브리지 모드에 대한 자세한 코드 설명

黄舟
黄舟원래의
2017-03-02 13:09:151247검색

추상화와 구현을 독립적으로 변경하도록 하세요

public abstract class Game
    {
        public Game(string name)
        {
            this.Name = name;
        }


        public Play m_play { get; set; }
        public string Name { get; set; }


        public virtual void PlayForFun()
        {
            this.m_play.PlayIt(this.Name);
        }
    }
    public class War3Game : Game
    {
        public War3Game(string name) : base(name) { 
        
        }
        public override void PlayForFun()
        {
            base.PlayForFun();
        }
    }
    public class KofGame : Game
    {
        public KofGame(string name)
            : base(name)
        { 
        
        }
        public override void PlayForFun()
        {
            base.PlayForFun();
        }
    }
    public class CsGame : Game
    {
        public CsGame(string name)
            : base(name)
        {
        
        }
        public override void PlayForFun()
        {
            base.PlayForFun();
        }
    }


    public abstract class Play
    {
        public virtual void PlayIt(string gameName) { }
    }
    public class CpuPlay : Play
    {
        public override void PlayIt(string gameName)
        {
            Console.WriteLine("play" + gameName + " game on computer");
        }
    }
    public class IPadPlay : Play
    {
        public override void PlayIt(string gameName)
        {
            Console.WriteLine("play" + gameName + " game on ipad");
        }
    }
    public class IPhonePlay : Play
    {
        public override void PlayIt(string gameName)
        {
            Console.WriteLine("play " + gameName + " game on iphone");
        }
    }

Call:

  Game g = new KofGame("kof97");
            g.m_play = new IPadPlay();
            g.PlayForFun();

위는 C# 디자인 패턴의 브리지 모드에 대한 자세한 코드 설명 및 관련 내용입니다. 내용 PHP 중국어 홈페이지(www.php.cn)를 주목해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.