大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 裝飾者設(shè)計(jì)模式的介紹

裝飾者設(shè)計(jì)模式的介紹

更新時(shí)間:2022-12-09 10:00:38 來源:動(dòng)力節(jié)點(diǎn) 瀏覽894次

裝飾器模式允許用戶在不改變其結(jié)構(gòu)的情況下向現(xiàn)有對(duì)象添加新功能。這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)模式,因?yàn)檫@種模式充當(dāng)現(xiàn)有類的包裝器。

此模式創(chuàng)建了一個(gè)裝飾器類,它包裝了原始類并提供了保持類方法簽名完整的附加功能。

我們通過以下示例演示裝飾器模式的使用,在該示例中我們將使用某種顏色裝飾形狀而不更改形狀類。

執(zhí)行

我們將創(chuàng)建一個(gè)Shape接口和實(shí)現(xiàn)Shape接口的具體類。然后我們將創(chuàng)建一個(gè)抽象裝飾器類ShapeDecorator實(shí)現(xiàn)Shape接口并將Shape對(duì)象作為其實(shí)例變量。

RedShapeDecorator是實(shí)現(xiàn)ShapeDecorator的具體類。

DecoratorPatternDemo,我們的演示類將使用RedShapeDecorator來裝飾Shape對(duì)象。

步驟1

創(chuàng)建一個(gè)接口。

形狀.java

public interface Shape {
   void draw();
}

第2步

創(chuàng)建實(shí)現(xiàn)相同接口的具體類。

矩形.java

public class Rectangle implements Shape {
   @Override
   public void draw() {
      System.out.println("Shape: Rectangle");
   }
}

圈子.java

public class Circle implements Shape {
   @Override
   public void draw() {
      System.out.println("Shape: Circle");
   }
}

步驟 3

創(chuàng)建實(shí)現(xiàn)Shape接口的抽象裝飾器類。

ShapeDecorator.java

public abstract class ShapeDecorator implements Shape {
   protected Shape decoratedShape;
   public ShapeDecorator(Shape decoratedShape){
      this.decoratedShape = decoratedShape;
   }
   public void draw(){
      decoratedShape.draw();
   }	
}

第4步

創(chuàng)建擴(kuò)展ShapeDecorator類的具體裝飾器類。

RedShapeDecorator.java

public class RedShapeDecorator extends ShapeDecorator {
   public RedShapeDecorator(Shape decoratedShape) {
      super(decoratedShape);		
   }
   @Override
   public void draw() {
      decoratedShape.draw();	       
      setRedBorder(decoratedShape);
   }
   private void setRedBorder(Shape decoratedShape){
      System.out.println("Border Color: Red");
   }
}

步驟 5

使用RedShapeDecorator裝飾Shape對(duì)象。

DecoratorPatternDemo.java

public class DecoratorPatternDemo {
   public static void main(String[] args) {
      Shape circle = new Circle();
      Shape redCircle = new RedShapeDecorator(new Circle());
      Shape redRectangle = new RedShapeDecorator(new Rectangle());
      System.out.println("Circle with normal border");
      circle.draw();
      System.out.println("\nCircle of red border");
      redCircle.draw();
      System.out.println("\nRectangle of red border");
      redRectangle.draw();
   }
}

步驟 6

驗(yàn)證輸出。

Circle with normal border
Shape: Circle
Circle of red border
Shape: Circle
Border Color: Red
Rectangle of red border
Shape: Rectangle
Border Color: Red

 

提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 国产精品亚洲欧美日韩区 | 国产精品久久久久久久久久直 | 在线观看中文字幕亚洲 | 极品色综合 | www.精品在线 | 成人国产亚洲欧美成人综合网 | 精品久久精品久久 | 久久精品青草社区 | 亚洲一二三区在线观看 | 奇米777狠狠色噜噜狠狠狠 | 成人短视频视频在线观看网站 | 秘密影院久久综合亚洲综合 | 亚洲精品国产一区二区 | 老子影院午夜久久亚洲 | 香蕉人人超 | 九九国产在线 | a毛片免费全部播放完整成 a毛片免费全部在线播放毛 | 天天爱天天射 | 色综合久久一本首久久 | 欧美日本一二三区 | 亚洲国产精品自产拍在线播放 | 国产午夜精品一区二区三区嫩草 | 国产成人精品一区二三区2022 | 奇米在线免费视频 | 99re这里只有精品在线 | 久久国产亚洲精品麻豆 | 曰曰鲁夜夜免费播放视频 | 色丁香六月 | 日本不卡在线视频高清免费 | 开心久久婷婷综合中文字幕 | 四虎永久免费影院在线 | 视频亚洲一区 | 亚洲精品福利一区二区 | 97天天做天天爱夜夜爽 | 亚洲综合套图 | 五月天色婷婷在线 | 国产综合91 | 久久精品一区二区三区资源网 | 美女个护士一级毛片亚洲 | a毛片在线观看 | 老湿机永久体验 |