Nadesłany przez Kamil Dworak, 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 Strategy * * (strategia) * * 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("LISTONOSZ")) { 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(); } } }
THX