Nadesłany przez Kamil Dworak, 22 grudnia 2010 12:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.Pobierz pełne rozwiązanie.
Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
bridge.cs:
/**************************************** * Wzorzec Projektowy Bridge * * (most) * * www.algorytm.org * * Kontakt * * kamil.dworak.1988[malpka]gmail.com * * Opracowal Dworak Kamil * *****************************************/ using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Mostek { class Program { enum Tlok { cd, dvd, bd } interface PlytkaInterface { void akcja(); } abstract class Plytka { protected PlytkaInterface plytkaInterface; protected Tlok type; protected String name; public Plytka(Tlok type, String name, PlytkaInterface plytkaImp) { this.type = type; this.name = name; this.plytkaInterface = plytkaImp; } public String Get() { return name + " " + type; } public void Set(String s, Tlok type) { this.name = s; this.type = type; } public abstract void akcja(); } class KPlytka : Plytka { public KPlytka(Tlok type, String name, PlytkaInterface plytkaInterface) : base(type,name,plytkaInterface) { } public override void akcja() { plytkaInterface.akcja(); } } class Nagrywanie : PlytkaInterface { public void akcja() { Console.WriteLine("Nagrywam plytke"); } } class Odczytywanie : PlytkaInterface { public void akcja() { Console.WriteLine("Odczytuje plytke"); } } static void Main(string[] args) { Plytka ob1 = new KPlytka(Tlok.dvd, "TDK", new Nagrywanie()); Plytka ob2 = new KPlytka(Tlok.cd, "Dysan", new Odczytywanie()); ob1.akcja(); Console.WriteLine(ob1.Get() + "\n"); ob2.akcja(); Console.WriteLine(ob2.Get() + "\n"); ob1.Set("Verbatim", Tlok.bd); ob1.akcja(); Console.WriteLine(ob1.Get() + "\n"); Console.ReadKey(true); } } }