let the abstraction and the realization Independent change
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) {} PU Blic 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) {Consol E.writeline ("Play" + Gamename + "game on ipad"); }} public class Iphoneplay:play {public override void PlayIt (string gamename) {Cons Ole. WriteLine ("Play" + Gamename + "game on iphone"); } }
Call:
Game g = new Kofgame ("kof97"); G.m_play = new Ipadplay (); G.playforfun ();
The above is the C # design mode bridge mode of the code in detail, more relevant content please pay attention to topic.alibabacloud.com (www.php.cn)!