algorytm.org

Implementacja w C#



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Most (bridge) - Implementacja w C#
Ocena użytkownikóww: *****  / 7
SłabyŚwietny
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);
        }
    }
}
Dodaj komentarz