C# 设计模式之桥接模式
  TEZNKK3IfmPf 2024年03月29日 38 0

让抽象和实现  独立的变化

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");
        }
    }

调用:

  Game g = new KofGame("kof97");
            g.m_play = new IPadPlay();
            g.PlayForFun();
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2024年03月29日 0

暂无评论

TEZNKK3IfmPf