OO Design
19Mar09
public interface PartaiPolitik {
// semua aktivitas parpol yang diizinkan di Indonesia
void registerPemilu(int tahun);
void kerja();
}
public abstract class AbstractPartaiPolitik implements PartaiPolitik {
// Menyediakan implementasi default dari sebuah parpol,
// jadi kalo mo bikin parpol baru, cukup extends kelas ini saja
// Soalnya banyak implementasi parpol yang sama-sama aje
// (makanya rata-rata sama semua)
// ...
public void kerja() {
// do nothing
}
}
public class Golkar extends AbstractPartaiPolitik {
private volatile Capres capres;
// big class with multiple responsibilities..
}
public class PDIP extends AbstractPartaiPolitik {
public static final Capres capres = Megawati.getInstance();
// well known operation
public void tolakUUPornografi() {
// implementation is omitted
}
public void changeCapres() {
throw new UnsupportedOperationException();
}
}
public class PD extends AbstractPartaiPolitik {
// advertise
public void gelengkanKepalaDanKatakanTidak();
}
public class Undisclosed {
public PartaiPolitik getPKS() {
return PKS.instance;
}
// inner class
private class PKS implements PartaiPolitik {
// Lazy instantiation
// (c.f. Effective Java 2nd ed., by Joshua Bloch)
private static PKS instance = new PKS();
// mengimplementasi semua method di interface
// karena tidak extends dari default abstract class
// ...
public void dispose() {
// tidak semua parpol punya method ini
}
}
}
Filed under: SingletonCategory | 5 Comments
-_-;
ya ampyun..
pekaes singleton pattern rupanya.. :p
Agak tertipu judul posting…
Saya pikir ada bahasan OOD…
astaga … ndan … coding sudah mengakar dalam kehidupan sehari2 keknya
nice!