Advertisement
rafibatam

Design Pattern Factory JAVA

Feb 25th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.72 KB | None | 0 0
  1. 1. Factory Pattern adalah pattern yang digunakan untuk memisahkan proses pembuatan sebuah object (produk) dari object lain (client) yang menggunakannya.
  2. 2. Kelebihan Factory Pattern = Jika ada perubahan pada produk class, tidak menyebabkan harus mengubah code pada client
  3. 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. 4. Kapan digunakan Factory Pattern = Ketika ada banyak object dengan tipe dasar yang sama dan kita manipulasi sebagai abstract object
  5. 5. Apa yang dilakukan ketika tidak boleh menggunakan Factory Pattern =
  6.  
  7. interface Mobil {
  8.     void merk();
  9. }
  10.  
  11. class Ferrari implements Mobil {
  12.     private String merkMobil = Ferrari.class.getSimpleName();
  13.    
  14.     @Override
  15.     public void merk() {
  16.         System.out.println("Nama Mobil Ferrari :");
  17.         System.out.println("1. " + merkMobil + " Four"
  18.                 + "\n2. " + merkMobil + " 458 Italia"
  19.                 + "\n3. " + merkMobil + " 458 Spider"
  20.                 + "\n4. " + merkMobil + " La Ferrari"
  21.                 + "\n5. " + merkMobil + " F12 Berlinetta");
  22.     }
  23. }
  24.  
  25. class Lamborghini implements Mobil {
  26.     private String merkMobil = Lamborghini.class.getSimpleName();
  27.    
  28.     @Override
  29.     public void merk() {
  30.         System.out.println("\nNama Mobil Lamborghini :");
  31.         System.out.println("1. " + merkMobil + " Veneno"
  32.                 + "\n2. " + merkMobil + " Egoista"
  33.                 + "\n3. " + merkMobil + " Veneno Roadster"
  34.                 + "\n4. " + merkMobil + " Aventador J"
  35.                 + "\n5. " + merkMobil + " Reventon Roadster");
  36.     }
  37. }
  38.  
  39. class McLaren implements Mobil {
  40.     private String merkMobil = McLaren.class.getSimpleName();
  41.  
  42.     @Override
  43.     public void merk() {
  44.         System.out.println("\nNama Mobil McLaren :");
  45.         System.out.println("1. " + merkMobil + " 720S Spider"
  46.                 + "\n2. " + merkMobil + " 540C"
  47.                 + "\n3. " + merkMobil + " 570GT"
  48.                 + "\n4. " + merkMobil + " 570S");
  49.     }
  50. }
  51.  
  52.  
  53. class merkMobil {
  54.     public static final String Ferrari = "Ferrari";
  55.     public static final String Lamborghini = "Lamborghini";
  56.     public static final String McLaren = "McLaren";
  57. }
  58.  
  59.  
  60. abstract class mobilFactory {
  61.     public static Mobil getMobil (String pilihan) {
  62.         if(pilihan.equals(merkMobil.Ferrari)) {
  63.             return new Ferrari();
  64.         }
  65.        
  66.         else if(pilihan.equals(merkMobil.Lamborghini)) {
  67.             return new Lamborghini();
  68.         }
  69.        
  70.         else if(pilihan.equals(merkMobil.McLaren)) {
  71.             return new McLaren();
  72.         }
  73.        
  74.         return null;
  75.     }
  76. }
  77.  
  78.  
  79. public class FactoryPattern {
  80.     public static void main(String[] args) {
  81.         Mobil type = mobilFactory.getMobil(merkMobil.Ferrari);
  82.         type.merk();
  83.        
  84.         type = mobilFactory.getMobil(merkMobil.Lamborghini);
  85.         type.merk();
  86.        
  87.         type = mobilFactory.getMobil(merkMobil.McLaren);
  88.         type.merk();
  89.     }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement