国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

使用Decorator模式添加功能

2019-11-18 12:17:26
字體:
供稿:網(wǎng)友

  作者:eclipse
  
  可能你已經(jīng)在用Decorator模式了,但是跟所有其他模式一樣,知道你為什么使用它,學(xué)習(xí)使用它跟別的開發(fā)者溝通是很重要的。
  
  
  Decorator模式,即Wrapper模式,其強(qiáng)制控制作用是在不改動(dòng)一個(gè)類的代碼或者不破壞一個(gè)類的接口的情況下為該類添加功能。當(dāng)你想一個(gè)類具有更多功能的時(shí)候,使用Decorator模式意味著增加功能后的版本不一定要通過擴(kuò)展類來重用現(xiàn)有功能。
  
  
  假定有一個(gè)叫做Action的接口有兩個(gè)方法,act1()、act2()。這個(gè)接口有一個(gè)具體版本ConcreteAction,Decorator將會(huì)是一個(gè)實(shí)現(xiàn)Action的類,其構(gòu)造器有一個(gè)Action(通常是ConcreteAction)。所以代碼如下:
  
  public class ActionDecorator implements Action {
  
   PRivate Action action;
  
   public ActionDecorator(Action action) {
   this.action = action;
   }
  
  
  public void act1() {
   action.act1();
   }
  
   public void act2() {
   // do nothing
   }
  
  }
  
  使用Decorator比使用繼續(xù)產(chǎn)生更少的類,所以其代碼比較簡單;但是它通常產(chǎn)生更多的對象,將導(dǎo)致調(diào)試難度增加,尤其是因?yàn)樗黾恿遂`活度,可能會(huì)引入新的錯(cuò)誤

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 西乌| 乌兰察布市| 竹溪县| 仁怀市| 宁阳县| 呼玛县| 上思县| 霞浦县| 武威市| 高雄县| 屏东市| 双流县| 广德县| 嘉荫县| 精河县| 平塘县| 宁国市| 北海市| 克拉玛依市| 新晃| 长寿区| 鲜城| 吴江市| 清新县| 浠水县| 潮州市| 合江县| 新野县| 平舆县| 琼海市| 娱乐| 昭通市| 邻水| 柳州市| 崇礼县| 海门市| 化德县| 萝北县| 长治市| 兰溪市| 龙门县|