Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1. Factory Pattern adalah pattern yang digunakan untuk memisahkan proses pembuatan sebuah object (produk) dari object lain (client) yang menggunakannya.
- 2. Kelebihan Factory Pattern = Jika ada perubahan pada produk class, tidak menyebabkan harus mengubah code pada client
- 3. Kekurangan Factory Pattern = Factory harus digunakan pada family dari object sehingga jika class tidak memperluas class dasarnya atau interfacenya maka template factory pattern tidak dapat digunakan
- 4. Kapan digunakan Factory Pattern = Ketika ada banyak object dengan tipe dasar yang sama dan kita manipulasi sebagai abstract object
- 5. Apa yang dilakukan ketika tidak boleh menggunakan Factory Pattern =
- interface Mobil {
- void merk();
- }
- class Ferrari implements Mobil {
- private String merkMobil = Ferrari.class.getSimpleName();
- @Override
- public void merk() {
- System.out.println("Nama Mobil Ferrari :");
- System.out.println("1. " + merkMobil + " Four"
- + "\n2. " + merkMobil + " 458 Italia"
- + "\n3. " + merkMobil + " 458 Spider"
- + "\n4. " + merkMobil + " La Ferrari"
- + "\n5. " + merkMobil + " F12 Berlinetta");
- }
- }
- class Lamborghini implements Mobil {
- private String merkMobil = Lamborghini.class.getSimpleName();
- @Override
- public void merk() {
- System.out.println("\nNama Mobil Lamborghini :");
- System.out.println("1. " + merkMobil + " Veneno"
- + "\n2. " + merkMobil + " Egoista"
- + "\n3. " + merkMobil + " Veneno Roadster"
- + "\n4. " + merkMobil + " Aventador J"
- + "\n5. " + merkMobil + " Reventon Roadster");
- }
- }
- class McLaren implements Mobil {
- private String merkMobil = McLaren.class.getSimpleName();
- @Override
- public void merk() {
- System.out.println("\nNama Mobil McLaren :");
- System.out.println("1. " + merkMobil + " 720S Spider"
- + "\n2. " + merkMobil + " 540C"
- + "\n3. " + merkMobil + " 570GT"
- + "\n4. " + merkMobil + " 570S");
- }
- }
- class merkMobil {
- public static final String Ferrari = "Ferrari";
- public static final String Lamborghini = "Lamborghini";
- public static final String McLaren = "McLaren";
- }
- abstract class mobilFactory {
- public static Mobil getMobil (String pilihan) {
- if(pilihan.equals(merkMobil.Ferrari)) {
- return new Ferrari();
- }
- else if(pilihan.equals(merkMobil.Lamborghini)) {
- return new Lamborghini();
- }
- else if(pilihan.equals(merkMobil.McLaren)) {
- return new McLaren();
- }
- return null;
- }
- }
- public class FactoryPattern {
- public static void main(String[] args) {
- Mobil type = mobilFactory.getMobil(merkMobil.Ferrari);
- type.merk();
- type = mobilFactory.getMobil(merkMobil.Lamborghini);
- type.merk();
- type = mobilFactory.getMobil(merkMobil.McLaren);
- type.merk();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement