Advertisement
rafibatam

Design Pattern Decorator JAVA

Mar 27th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.55 KB | None | 0 0
  1. Decorator Pattern adalah pattern yang digunakan untuk menambahkan fungsionalitas baru ke dalam objek tanpa merubah struktur objek tersebut.
  2.  
  3. // People.java
  4. public interface People {
  5.     void clothes();
  6. }
  7.  
  8. // Coat.java
  9. public class Coat implements People {
  10.     public void clothes() {
  11.         System.out.println("Outfit : Coat");
  12.     }
  13. }
  14.  
  15. // Jeans.java
  16. public class Jeans implements People {
  17.     public void clothes() {
  18.         System.out.println("Outfit : Coat, Jeans");
  19.     }
  20. }
  21.  
  22. // Scarf.java
  23. public class Scarf implements People {
  24.     public void clothes() {
  25.         System.out.println("Outfit : Coat, Jeans, Scarf"); 
  26.     }
  27. }
  28.  
  29. // Beanie.java
  30. public class Beanie implements People {
  31.     public void clothes() {
  32.         System.out.println("Outfit : Coat, Jeans, Scarf, Beanie");
  33.     }
  34. }
  35.  
  36. // Socks.java
  37. public class Socks implements People {
  38.     public void clothes() {
  39.         System.out.println("Outfit : Coat, Jeans, Scarf, Beanie, Socks");
  40.     }
  41. }
  42.  
  43. // Boots.java
  44. public class Boots implements People {
  45.     public void clothes() {
  46.         System.out.println("Outfit : Coat, Jeans, Scarf, Beanie, Socks, Boots");
  47.     }
  48. }
  49.  
  50. // ClothesDecorator.java
  51. public abstract class ClothesDecorator implements People {
  52.     protected People decoratedClothes;
  53.    
  54.     public ClothesDecorator(People decoratedClothes) {
  55.         this.decoratedClothes = decoratedClothes;
  56.     }
  57.    
  58.     public void clothes() {
  59.         decoratedClothes.clothes();
  60.     }
  61. }
  62.  
  63. // Warm.java
  64. public class Warm extends ClothesDecorator {
  65.  
  66.     public Warm(People decoratedClothes) {
  67.         super(decoratedClothes);
  68.     }
  69.  
  70.     public void clothes() {
  71.         decoratedClothes.clothes();
  72.         setWarm(decoratedClothes);
  73.     }
  74.  
  75.     private void setWarm(People decoratedClothes) {
  76.         System.out.println("The clothes can makes you warm");
  77.     }
  78. }
  79.  
  80. // Progress.java
  81. public class Progress {
  82.     public static void main(String[] args) {
  83.         People coat = new Warm(new Coat());
  84.         People jeans = new Warm(new Jeans());
  85.         People scarf = new Warm(new Scarf());
  86.         People beanie = new Warm(new Beanie());
  87.         People socks = new Warm(new Socks());
  88.         People boots = new Warm(new Boots());
  89.        
  90.         System.out.println("\t\tWhen winter comes, people are using winter clothes");
  91.         System.out.println("\nPeople are using Coat");
  92.         coat.clothes();
  93.        
  94.         System.out.println("\nPeople are using Jeans");
  95.         jeans.clothes();
  96.        
  97.         System.out.println("\nPeople are using Scarf");
  98.         scarf.clothes();
  99.        
  100.         System.out.println("\nPeople are using Beanie");
  101.         beanie.clothes();
  102.        
  103.         System.out.println("\nPeople are using Socks");
  104.         socks.clothes();
  105.        
  106.         System.out.println("\nPeople are using Boots");
  107.         boots.clothes();
  108.     }
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement