Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Decorator Pattern adalah pattern yang digunakan untuk menambahkan fungsionalitas baru ke dalam objek tanpa merubah struktur objek tersebut.
- // People.java
- public interface People {
- void clothes();
- }
- // Coat.java
- public class Coat implements People {
- public void clothes() {
- System.out.println("Outfit : Coat");
- }
- }
- // Jeans.java
- public class Jeans implements People {
- public void clothes() {
- System.out.println("Outfit : Coat, Jeans");
- }
- }
- // Scarf.java
- public class Scarf implements People {
- public void clothes() {
- System.out.println("Outfit : Coat, Jeans, Scarf");
- }
- }
- // Beanie.java
- public class Beanie implements People {
- public void clothes() {
- System.out.println("Outfit : Coat, Jeans, Scarf, Beanie");
- }
- }
- // Socks.java
- public class Socks implements People {
- public void clothes() {
- System.out.println("Outfit : Coat, Jeans, Scarf, Beanie, Socks");
- }
- }
- // Boots.java
- public class Boots implements People {
- public void clothes() {
- System.out.println("Outfit : Coat, Jeans, Scarf, Beanie, Socks, Boots");
- }
- }
- // ClothesDecorator.java
- public abstract class ClothesDecorator implements People {
- protected People decoratedClothes;
- public ClothesDecorator(People decoratedClothes) {
- this.decoratedClothes = decoratedClothes;
- }
- public void clothes() {
- decoratedClothes.clothes();
- }
- }
- // Warm.java
- public class Warm extends ClothesDecorator {
- public Warm(People decoratedClothes) {
- super(decoratedClothes);
- }
- public void clothes() {
- decoratedClothes.clothes();
- setWarm(decoratedClothes);
- }
- private void setWarm(People decoratedClothes) {
- System.out.println("The clothes can makes you warm");
- }
- }
- // Progress.java
- public class Progress {
- public static void main(String[] args) {
- People coat = new Warm(new Coat());
- People jeans = new Warm(new Jeans());
- People scarf = new Warm(new Scarf());
- People beanie = new Warm(new Beanie());
- People socks = new Warm(new Socks());
- People boots = new Warm(new Boots());
- System.out.println("\t\tWhen winter comes, people are using winter clothes");
- System.out.println("\nPeople are using Coat");
- coat.clothes();
- System.out.println("\nPeople are using Jeans");
- jeans.clothes();
- System.out.println("\nPeople are using Scarf");
- scarf.clothes();
- System.out.println("\nPeople are using Beanie");
- beanie.clothes();
- System.out.println("\nPeople are using Socks");
- socks.clothes();
- System.out.println("\nPeople are using Boots");
- boots.clothes();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement