algorytm.org

Implementacja w Java



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?

Strategia (strategy) - Implementacja w Java
Ocena użytkownikóww: *****  / 18
SłabyŚwietny
Nadesłany przez Kamil Dworak, 04 sierpnia 2010 13: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.

strategy.java:
/****************************************
*   Wzorzec Projektowy Strategy         *
*   (strategia )                        *   
*   www.algorytm.org                    *
*   Opracowal Dworak Kamil              *
*****************************************/

import java.util.Scanner;

interface Pracowac {
	public void pracuj(); 
}

interface Dojezdzac {
	public void dojezdzaj();
}

interface SpedzanieWolnegoCzasu{
	public void spedzajWolnyCzas();
}

//poszczegolne algorytmy
class NaprawaSamochodow implements Pracowac {
	public void pracuj(){
		System.out.println("Praca: naprawia samochody");
	}
}

class Leczenie implements Pracowac {
	public void pracuj(){
		System.out.println("Praca: leczy ludzi");
	}
}

class RoznoszenieListow implements Pracowac {
	public void pracuj(){
		System.out.println("Praca: roznosi listy");
	}
}

class Samochod implements Dojezdzac {
	public void dojezdzaj(){
		System.out.println("Dojazd: samochod");
	}
}

class Rower implements Dojezdzac {
	public void dojezdzaj(){
		System.out.println("Dojazd: rower");
	}
}

class Silownia implements SpedzanieWolnegoCzasu {
	public void spedzajWolnyCzas(){
		System.out.println("Wolny Czas: silownia");
	}
}

class LiteraturaPopularnoNaukowa implements SpedzanieWolnegoCzasu {
	public void spedzajWolnyCzas(){
		System.out.println("Wolny Czas: literatura popularno-naukowa");
	}
}

//kontekst
class Pracownik {
	private Pracowac pracowac = null;
	private Dojezdzac dojezdzac = null;
	private SpedzanieWolnegoCzasu spedzanieWolnegoCzasu = null;
	
	public Pracownik(String zawod){
		if(zawod.equalsIgnoreCase("mechanik")){
				pracowac = new NaprawaSamochodow();
				dojezdzac = new Samochod();
				spedzanieWolnegoCzasu = new Silownia();
		}
		else if(zawod.equalsIgnoreCase("lekarz")){
			pracowac = new Leczenie();
			dojezdzac = new Samochod();
			spedzanieWolnegoCzasu = new LiteraturaPopularnoNaukowa();
	}
		else if(zawod.equalsIgnoreCase("listonosz")){
			pracowac = new RoznoszenieListow();
			dojezdzac = new Rower();
			spedzanieWolnegoCzasu = new Silownia();
	}
		
	}
	
	//tutaj wywolujemy algorytmy
	public void methods(){
		pracowac.pracuj();
		dojezdzac.dojezdzaj();
		spedzanieWolnegoCzasu.spedzajWolnyCzas();
	}

	public static void main(String[]args){
		Scanner in = new Scanner(System.in);
		String zawod = in.nextLine();
		
		try {
			Pracownik pracownik = new Pracownik(zawod);
			pracownik.methods();
		}catch(Exception e){
			System.out.println("nie ma takiego zawodu");
		}
	}
}
Komentarze
photo
+3 # qwerty1234 2014-08-30 23:08
Dziekuję za poradnik. Pozdrawiam.
Odpowiedz | Odpowiedz z cytatem | Cytować
Dodaj komentarz