Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package lab;
- import static java.lang.System.out;
- public class ChrismasTreeDemo {
- public static void main (String[] args) {
- ChrismasTreeComponent t =
- new Gift( new Bell( new Candy(new ChrismasTree()) ) );
- t.sing();
- }
- }
- abstract class ChrismasTreeComponent {
- abstract public void sing();
- }
- class ChrismasTree extends ChrismasTreeComponent {
- @Override
- public void sing() {
- out.println("I am a Chrismas tree");
- }
- }
- abstract class ChrismasTreeDecorator extends ChrismasTreeComponent {
- ChrismasTreeComponent c;
- public ChrismasTreeDecorator(ChrismasTreeComponent c) {
- this.c = c;
- }
- @Override
- public void sing() {
- this.decoratorsSing();
- out.print(", ");
- c.sing();
- }
- abstract void decoratorsSing();
- }
- class Bell extends ChrismasTreeDecorator {
- public Bell(ChrismasTreeComponent c) {
- super(c);
- }
- @Override
- void decoratorsSing() {
- out.print("I have a bell");
- }
- }
- class Candy extends ChrismasTreeDecorator {
- public Candy(ChrismasTreeComponent c) {
- super(c);
- }
- @Override
- void decoratorsSing() {
- out.print("I have a bell");
- }
- }
- class Gift extends ChrismasTreeDecorator {
- public Gift(ChrismasTreeComponent c) {
- super(c);
- }
- @Override
- void decoratorsSing() {
- out.print("I have a gift");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment