Mega Code Archive

 
Categories / Java Tutorial / Design Pattern
 

Creating and Extending Objects with the Decorator Patterns

public class MainClass {   public static void main(String args[]) {     Computer computer = new Computer();     computer = new Disk(computer);     computer = new Monitor(computer);     computer = new CD(computer);     System.out.println("You're getting a " + computer.description() + ".");   } } class Disk extends ComponentDecorator {   Computer computer;   public Disk(Computer c) {     computer = c;   }   public String description() {     return computer.description() + " and a disk";   } } class CD extends ComponentDecorator {   Computer computer;   public CD(Computer c) {     computer = c;   }   public String description() {     return computer.description() + " and a CD";   } } class Computer {   public Computer() {   }   public String description() {     return "computer";   } } abstract class ComponentDecorator extends Computer {   public abstract String description(); } class Monitor extends ComponentDecorator {   Computer computer;   public Monitor(Computer c) {     computer = c;   }   public String description() {     return computer.description() + " and a monitor";   } }