Felhasználói eszközök

Eszközök a webhelyen


oktatas:programozas:tervezesi_mintak:gyarto_metodus

< Tervezési minták

Gyártó metódus

  • Szerző: Sallai András
  • Copyright © Sallai András, 2014
  • Licenc: GNU Free Documentation License 1.3

Használat

Akkor használjuk ha nem tudjuk milyen példányok jönnek létre.

Az állatgyár példa

Program01.java
interface Allat {	
	public void beszel();
}
 
class Macska implements Allat {
	public void beszel() {
		System.out.println("Miau");
	}
}
 
class MacskaGyar {	
	public static Macska newMacska() {
		return new Macska();
	}
}
 
class Program01 {
 
	public static void main(String[] args) {
		Macska cirmos = MacskaGyar.newMacska();
		cirmos.beszel();
	}
}

Macska és kutya

Egyetlen gyártó

Program01.java
enum AllatFajta {
	MACSKA, KUTYA
}
 
interface Allat {
	public void beszel();
}
 
class Macska implements Allat {
	public void beszel() {
		System.out.println("Miau");
	}
}
 
class Kutya implements Allat {
	public void beszel() {
		System.out.println("Vauu");
	}
}
 
class AllatGyar {	
	public static Allat newAllat(AllatFajta allatFajta) {
		if(allatFajta == AllatFajta.MACSKA)
			return new Macska();
		if(allatFajta == AllatFajta.KUTYA)
			return new Kutya();
		return null;
	}
}
 
class Program01 {	
	public static void main(String[] args) {
		Allat allat = AllatGyar.newAllat(AllatFajta.MACSKA);
		allat.beszel();
	}
}

Szokásos metódusnevek

Általánosan használt statikus metódusok:

  • valueOf() átadott paraméterrel egyenértékű objektummal tér vissza
  • newInstance() készít egy új példányt gyártómetódusból, amelyet meghívunk
  • getInstance() egy Singleton példánnyal tér vissza
  • getType() egyenértékű a getInstance() metódussal, de külön osztályban van
  • newType() egyenértékű a newInstance() metódussal, de külön osztályban van
oktatas/programozas/tervezesi_mintak/gyarto_metodus.txt · Utolsó módosítás: 2019/08/22 13:36 szerkesztette: admin