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

首頁 > 編程 > Java > 正文

Java裝飾器設計模式初探

2019-11-26 13:49:06
字體:
來源:轉載
供稿:網友

本篇隨筆主要介紹用Java實現簡單的裝飾器設計模式:

先來看一下裝飾器設計模式的類圖:


從圖中可以看到,我們可以裝飾Component接口的任何實現類,而這些實現類也包括了裝飾器本身,裝飾器本身也可以再被裝飾。

下面是用Java實現的簡單的裝飾器設計模式,提供的是從基本的加入咖啡入手,可以繼續加入牛奶,巧克力,糖的裝飾器系統。

interface Component {  void method();}class Coffee implements Component {  @Override  public void method() {    // TODO Auto-generated method stub    System.out.println("倒入咖啡");  }  }class Decorator implements Component {  public Component comp;  public Decorator(Component comp) {    this.comp = comp;  }  @Override  public void method() {    // TODO Auto-generated method stub    comp.method();  }  }class ConcreteDecorateA extends Decorator {  public Component comp;  public ConcreteDecorateA(Component comp) {    super(comp);    this.comp = comp;  }  public void method1() {    System.out.println("倒入牛奶");  }  public void method2() {    System.out.println("加入糖 ");  }  public void method() {    super.method();    method1();    method2();  }}class ConcreteDecorateB extends Decorator {  public Component comp;  public ConcreteDecorateB(Component comp) {    super(comp);    this.comp = comp;  }  public void method1() {    System.out.println("加入巧克力");  }  public void method() {    super.method();    method1();  }}public class TestDecoratePattern {  public static void main(String[] args) {    Component comp = new Coffee();    comp.method();    System.out.println("--------------------------------------------------");    Component comp1 = new ConcreteDecorateA(comp);    comp1.method();    System.out.println("--------------------------------------------------");    Component comp2 = new ConcreteDecorateB(comp1);    comp2.method();    System.out.println("--------------------------------------------------");    Component comp3 = new ConcreteDecorateB(new ConcreteDecorateA(new Coffee()));    comp3.method();    System.out.println("--------------------------------------------------");    Component comp4 = new ConcreteDecorateA(new ConcreteDecorateB(new Coffee()));    comp4.method();  }}

運行結果:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永昌县| 黔西| 台中市| 绍兴县| 贡嘎县| 霍州市| 遂川县| 阳谷县| 东阿县| 宝山区| 娄烦县| 新兴县| 扶余县| 六盘水市| 仪陇县| 益阳市| 宣城市| 宣威市| 洛南县| 衡阳县| 兴宁市| 武宣县| 丽江市| 滦南县| 莆田市| 舒城县| 诸暨市| 莎车县| 晴隆县| 阳新县| 淳安县| 凌源市| 酒泉市| 富源县| 明水县| 治多县| 仁布县| 习水县| 清远市| 鄂州市| 肥东县|