java學習

          java學習

           

          設計模式之裝飾者模式

          動態地給一個對象添加一些額外的職責。就增加功能來說,Decorator模式相比生成子類更為靈活。
          例子:
          被裝飾的接口:
          public interface Cake {

              public float cost();
          }
          接口的實現類:
          public class MilkCake implements Cake{
              @Override
              public float cost() {
                  return 100f;
              }
          }
          裝飾者抽象類:
          public abstract class CakeDecorator implements Cake{

          }
          裝飾者的實現類
          public class Chocolate extends CakeDecorator{

              private Cake cake;
              
              public Chocolate(Cake cake) {
                  this.cake = cake;
              }
              
              @Override
              public float cost() {
                  float chocolatePrice = 25f;
                  return cake.cost() + chocolatePrice;
              }

          }
          public class Berry extends CakeDecorator {

              private Cake cake;
              public Berry(Cake cake) {
                  this.cake = cake;
              }
              
              @Override
              public float cost() {
                  float berryPrice = 5f;
                  return cake.cost() + berryPrice;
              }    
          }
          測試類:
          public class Test {

              public static void main(String[] args)  {
                  
                  MilkCake mc = new MilkCake();//牛奶蛋糕
                  System.out.println(mc.cost());
                  Berry b = new Berry(mc);//牛奶草莓蛋糕
                  System.out.println(b.cost());
                  Chocolate c = new Chocolate(b);//牛奶草莓巧克力蛋糕
                  System.out.println("付款:" + c.cost());
                  
                  
                  
              }
          }

          posted on 2013-04-23 14:21 楊軍威 閱讀(156) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宁海县| 北海市| 息烽县| 延庆县| 宁陕县| 监利县| 喜德县| 凤山市| 阜新市| 涟水县| 鞍山市| 双鸭山市| 修水县| 云和县| 涿鹿县| 轮台县| 金川县| 韶关市| 绥滨县| 车致| 大足县| 肥西县| 绿春县| 邳州市| 清水河县| 德江县| 本溪市| 泰安市| 大竹县| 巴林左旗| 汉源县| 奇台县| 鄂托克旗| 汤阴县| 仁寿县| 札达县| 彭阳县| 昌江| 泽库县| 康乐县| 新晃|