标签:接口 warning ring swa java print color 参数 rate
将一个对象作为参数进行传递,然后对这个对象进行包装---改变其中的方法或者添加一些新的行为---装饰设计模式---装饰者模式---Decorate Model
改变一个方法:
1. 通过继承这个类,然后重写其中的方法
2. 通过对象的传递创建装饰对象,在装饰类中重新提供对应的方法
继承的缺点:
1. 单继承
2. 利用向上造型创建了一个父类对象,可以调用子类中重写方法,不能在使用父类中原来的方法
3. 如果父类对象已经存在,不能使用子类中重写之后的方法
装饰设计模式的缺点:
可能提高代码的冗余度---代理模式
1 //人的接口 2 public interface Person { 3 4 void eat(); 5 6 void sleep(); 7 8 } 9 10 11 //明星的实现类 12 public class Star implements Person { 13 14 @SuppressWarnings("unused") 15 private Person p; 16 17 public Star(Person p) { 18 this.p = p; 19 } 20 21 @Override 22 public void eat() { 23 System.out.println("明星吃的是野菜~~~"); 24 } 25 26 @Override 27 public void sleep() { 28 System.out.println("上床数星星~~~"); 29 } 30 31 } 32 33 //工人实现类 34 public class Worker implements Person { 35 36 @Override 37 public void eat() { 38 System.out.println("工人吃一顿山珍海味~~~然后吃一个月的土~~~"); 39 } 40 41 @Override 42 public void sleep() { 43 System.out.println("上床数星星~~~"); 44 } 45 46 } 47 48 //将工人进行包装变成明星,但本质上工人还是工人 49 public class PersonDemo { 50 51 public static void main(String[] args) { 52 53 Worker p = new Worker(); 54 55 p.eat(); 56 57 Star s = new Star(p); 58 59 s.eat(); 60 61 p.eat(); 62 63 } 64 65 }
标签:接口 warning ring swa java print color 参数 rate
原文地址:http://www.cnblogs.com/tongxuping/p/6832518.html