黑马程序员技术交流社区

标题: 装饰设计模式 演示 [打印本页]

作者: fmi110    时间: 2015-9-20 22:07
标题: 装饰设计模式 演示
a
  1. package decorate.demo;

  2. public class RingPhoneDecorate extends PhoneDecorate {

  3.         public RingPhoneDecorate(Phone p) {
  4.                 super(p);
  5.         }
  6.         @Override
  7.         public void phone() {
  8.                 System.out.println("手机有彩铃啦~~");
  9.                 super.phone();
  10.         }
  11.        
  12. }

  13. package decorate.demo;

  14. public abstract class PhoneDecorate implements Phone {
  15.         private Phone p;
  16.         public PhoneDecorate(Phone p){
  17.                 this.p = p;
  18.         }
  19.         @Override
  20.         public void phone() {
  21.                 this.p.phone();
  22.         }

  23. }
  24. package decorate.demo;

  25. public class MusicPhoneDecorate extends PhoneDecorate {

  26.         public MusicPhoneDecorate(Phone p) {
  27.                 super(p);
  28.         }
  29.         @Override
  30.         public void phone() {
  31.                 System.out.println("手机可以听音乐啦~~");
  32.                 super.phone();
  33.         }
  34. }
  35. package decorate.demo;

  36. public class Test {

  37.         /**
  38.          * @param args
  39.          */
  40.         public static void main(String[] args) {
  41.                 Phone p = new PhoneImpl();
  42.                 p.phone();
  43.                 System.out.println("------------------------------");
  44.                 new MusicPhoneDecorate(p).phone();
  45.                 System.out.println("------------------------------");
  46.                 new MusicPhoneDecorate(new RingPhoneDecorate(p)).phone();
  47.         }

  48. }
复制代码







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2