标签:style blog color 使用 java ar 文件 div 问题
感觉装饰者模式挺实用的,它可以在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象,跟名字一样,名副其实的装饰者。
装饰对象特点:
1 //接口 2 interface Student { 3 public void speak(); 4 } 5 6 //中国学生 7 8 class ChineseStu implements Student{ 9 public void speak() { 10 System.out.println("你好!"); 11 } 12 } 13 14 //英国学生 15 16 class EnglishStu implements Student{ 17 public void speak() { 18 System.out.println("Hello!"); 19 } 20 } 21 22 //日本学生 23 24 class JapaneseStu implements Student{ 25 public void speak() { 26 System.out.println("こんにちは!"); 27 } 28 }
但是现在有了个新的问题,比如我们要在他们打招呼之后说一声他们各自来自于哪个学校,例如Aschool, Bschool怎么办?再写一个子类继承Stu们吗?不需要哦,这个时候就可以用装饰者模式来装饰啦,代码如下。
1 //装饰者 2 class AschoolStu implements Student { 3 private Student student; 4 AschoolStu(Student student) { //包含对真实对象的引用 5 this.student = student; 6 } 7 public void speak() { //有相同的接口 8 student.speak(); 9 System.out.println("Aschool student!"); //附加功能 10 } 11 } 12 13 //Aschool的中国学生打招呼 14 class Test { 15 public static void main(String args[]) { 16 ChineseStu cstu = new ChineseStu(); 17 AschoolStu acstu = new AschoolStu(cstu); 18 acstu.speak(); //"你好!\nAschool student!" 19 } 20 }
标签:style blog color 使用 java ar 文件 div 问题
原文地址:http://www.cnblogs.com/keeno/p/3966781.html