`

Decrator 设计模式

阅读更多

Decrator模式:即Wrapper模式,其强制控制作用是在不改动一个类的代码或者不破坏一个类的接口的情况下为该类添加功能。当你想一个类具有更多功能的时候,使用Decorator模式意味着增加功能后的版本不一定要通过扩展类来重用现有功能。  使用Decorator比使用继承产生更少的类,所以其代码比较简单;但是它通常产生更多的对象,将导致调试难度增加,尤其是因为它增加了灵活度,可能会引入新的错误。

 

 

public class Person {
 private String name;
 
 public String getName(){
  return name;
 }
 public void setName(String name){
  this.name=name;
 }
 public void speek(){
  System.out.println(name+" 自言自语。");
 }
}

 

public class PersonDecrator {//可以不在原来的类上扩展方法
 private Person p;
 
 PersonDecrator(Person p){
  this.p=p;
 }
 public void speekTo(Person person){
  System.out.println(p.getName()+" say: "+person.getName()+" 你好!");
 }
}

 

public class Test {

 public static void main(String[] args) {
  Person p=new Person();
  p.setName("zw");
  PersonDecrator pd=new PersonDecrator(p);
  Person person=new Person();
  person.setName("wang wu");
  pd.speekTo(person);
 }
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics