< Tervezési minták

Gyártó metódus

Szerző: Sallai András

Copyright © Sallai András, 2014

Licenc: GNU Free Documentation License 1.3

Web: http://szit.hu

Használat

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

Az állatgyár példa

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ó

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