“The essence of the Factory method Pattern is to “Define an interface for creating an object, but let the subclasses decide which class to instantiate. The Factory method lets a class defer instantiation to subclasses.”
Itulah kutipan dari wikipedia mengenai Factory Method. Bisa juga didefinisikan sebagai sebuah class interface, kita bisa men-generate object yang dinamis sesuai kebutuhan dan implementasi yang diinginkan. Ruang lingkup dari Factory Method adalah class, Factory Method sendiri adalah class object yang static.
Disini saya mencontohkan dengan kasus macam – macam kopi beserta bahannya :
/**
*
* class Kopi
*/
public abstract class Kopi {
private String harga;
private String bahan;
public String getHarga() {
return harga;
}
public void setHarga(String harga) {
this.harga = harga;
}
public String getBahan() {
return bahan;
}
public void setBahan(String bahan) {
this.bahan = bahan;
}
public abstract void draw();
}
/**
*
* class KopiCoklat
*/
public class KopiCoklat extends Kopi{
public KopiCoklat() {
setBahan(“Gula, Kopi,Coklat–> “);
setHarga(“4000″);
}
@Override
public void draw() {
System.out.print(“Kopi Coklat –> “);
System.out.print(getBahan());
System.out.println(getHarga());
}
}
/**
*
* class KopiSusu
*/
public class KopiSusu extends Kopi{
public KopiSusu() {
setBahan(“Gula, Kopi, Susu –> “);
setHarga(“3000″);
}
@Override
public void draw() {
System.out.print(“Kopi Susu –> “);
System.out.print(getBahan());
System.out.println(getHarga()); }
}
/**
*
* Class KopiFactory
*/
public class KopiFactory {
public static Kopi bikinKopi(String os){
if (os.equals(“KopiSusu”)){
return new KopiSusu();
}else if (os.equals(“KopiTubruk”)){
return new KopiTubruk();
}
else if (os.equals(“KopiCoklat”)){
return new KopiCoklat();
}
else if (os.equals(“KopiSusuCoklat”)){
return new KopiSusuCoklat();
}
else if (os.equals(“KopiManis”)){
return new KopiManis();
}
return null;
}
}
/**
*
* Class FactoryKopi
*/
public class FactoryKopi {
public static void main(String[] args) {
Kopi a =
KopiFactory.bikinKopi(“KopiSusu”);
a.draw();
Kopi b =
KopiFactory.bikinKopi(“KopiTubruk”);
b.draw();
Kopi c =
KopiFactory.bikinKopi(“KopiCoklat”);
c.draw();
Kopi d =
KopiFactory.bikinKopi(“KopiSusuCoklat”);
d.draw();
Kopi e =
KopiFactory.bikinKopi(“KopiManis”);
e.draw();
}
}



tugasmu pattern tha???
tak jupuk’e podo ngunu soale Q.
monggo bos