StartWzorce projektoweWzorce projektoweStrategia (strategy)Implementacja w C#
Baza Wiedzy
Wersja offline serwisu przeznaczona na urządzenia z systemem Android.

Darowizny
darowiznaWspomóż rozwój serwisu


Nagłówki RSS
Kanał artykuły
Kanał implementacje
Kanał komentarze
Kanał forum


Bookmarki









Sonda
Implementacji w jakim języku programowania poszukujesz?
 
Strategia (strategy) - Implementacja w C#
Ocena użytkownikóww: ++++-  / 1
Słaby Świetny
Nadesłany przez Kamil Dworak
piątek, 06 sierpnia 2010 00:12
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.

strategy_1_cs.cs:
/****************************************
*   Wzorzec Projektowy Builder          *
*   (budowniczy)                        *   
*   www.algorytm.org                    *
*   Opracowal Dworak Kamil              *
*****************************************/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication3
{
    public interface Pracowac
    {
        void pracuj();
    }

    public interface Dojezdzac
    {
        void dojezdzaj();
    }

    public interface SpedzanieWolnegoCzasu
    {
        void spedzajWolnyCzas();
    }

    //poszczegolne algorytmy
    public class NaprawaSamochodow : Pracowac {
        public void pracuj()
        {
            Console.WriteLine("Praca: naprawia samochody");
        }
    }

    public class Leczenie : Pracowac
    {
        public void pracuj()
        {
            Console.WriteLine("Praca: leczy ludzi");
        }
    }

    public class RoznoszenieListow : Pracowac
    {
        public void pracuj()
        {
            Console.WriteLine("Praca: roznosi listy");
        }
    }

    public class Samochod : Dojezdzac
    {
        public void dojezdzaj()
        {
            Console.WriteLine("Dojazd: samochod");
        }
    }

    public class Rower : Dojezdzac
    {
        public void dojezdzaj()
        {
            Console.WriteLine("Dojazd: rower");
        }
    }

    public class Silownia : SpedzanieWolnegoCzasu
    {
        public void spedzajWolnyCzas()
        {
            Console.WriteLine("Wolny Czas: silownia");
        }
    }

    public class LiteraturaPopularnoNaukowa : SpedzanieWolnegoCzasu
    {
        public void spedzajWolnyCzas()
        {
            Console.WriteLine("Wolny Czas: literatura popularno-naukowa");
        }
    }
    
    //kontekst
    public class Pracownik
    {
        private Pracowac pracowac = null;
        private Dojezdzac dojezdzac = null;
        private SpedzanieWolnegoCzasu spedzanieWolnegoCzasu = null;

        public Pracownik(String zawod)
        {
            if ((zawod.ToUpper()).Equals("MECHANIK"))
            {
                pracowac = new NaprawaSamochodow();
                dojezdzac = new Samochod();
                spedzanieWolnegoCzasu = new Silownia();
            }
            else if ((zawod.ToUpper()).Equals("LEKARZ"))
            {
                pracowac = new Leczenie();
                dojezdzac = new Samochod();
                spedzanieWolnegoCzasu = new LiteraturaPopularnoNaukowa();
            }
            else if ((zawod.ToUpper()).Equals("LISTONORZ"))
            {
                pracowac = new RoznoszenieListow();
                dojezdzac = new Rower();
                spedzanieWolnegoCzasu = new Silownia();
            }

        }


        //tutaj wywolujemy algorytmy
        public void methods()
        {
            pracowac.pracuj();
            dojezdzac.dojezdzaj();
            spedzanieWolnegoCzasu.spedzajWolnyCzas();
        }
    }
    class Program
    {

        static void Main(string[] args)
        {
            String zawod = Console.ReadLine();
		
		try {
			Pracownik pracownik = new Pracownik(zawod);
			pracownik.methods();
		}catch(Exception e){
			Console.WriteLine("nie ma takiego zawodu");
		}
        zawod = Console.ReadLine();
        }

    }
}

Dodaj komentarz

Kod antysapmowy
Odśwież