Android装饰者模式

个人理解->装饰者模式的目的就是在不改变现有继承的前提下实现对一个类的功能的增加

装饰者模式关键包含:  接口,接口的实现类  ,接口的装饰者,接口装饰者的实现类。

以为一个小例子来理解装饰者模式:

一个接口: public interface ccInter{

  public String ccfunction (String str);   //一个抽象方法

}

一个接口的实现类:public class  ccClass implements ccInter{

public String ccfunction (String str){ //一个具体实现方法

String myStr=str+"123";

return  myStr;   //我们实现了ccIntent接口重写了ccfunction方法,把str后面加了一个字符串123

}}

一个接口的装饰者:public class  ccDecorator implements ccInter{

public ccInter minter;

 public ccDecorator (ccInter  minter){//构造方法 (可以传入这个接口的实现类,我们就是要对这个实现类做操作)

 this.minter=minter;

}

public String ccfunction (String str){ //重写 接口的实现方法

return  minter.ccfunction(str);   //我们实现了ccIntent,调用minter的实现类的ccfunction方法

}}

一个接口装饰者的实现类: 

public class  ccClassDecorator extents ccDecorator{

 public ccDecorator (ccInter  minter){//构造方法 (可以传入这个接口的实现类,我们就是要对这个实现类做操作)

  super(minter);

}

public String ccfunction (String str){ //一个具体实现方法

String  res=super.ccfunction(str);

res=this.change(res);

return  res;   //我们实现了ccIntent接口重写了ccfunction方法,把str后面加了一个字符串123

}

public String change (String str){ //改变方法

res=str+"456";

return  res;  

}


}

客户端调用:

String mString ="000";

String resultString="";

ccClass  mccc=new ccClass();//继承自接口的类

resultString=mccc.ccfunction(mString);//传入String“000” 返回结果为“000123”

ccClassDecorator deco=new ccClassDecorator(ccClass);

resultString=deco.ccfunction(mString);//传入String“000”返回结果“000123456”


猜你喜欢

转载自blog.csdn.net/xiaoqiang_0719/article/details/79669379
今日推荐