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)  編輯  收藏


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


          網站導航:
           

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 古蔺县| 龙山县| 睢宁县| 崇左市| 永和县| 海丰县| 丘北县| 石河子市| 乾安县| 汤原县| 金塔县| 敦煌市| 喀喇| 班戈县| 龙陵县| 高要市| 获嘉县| 金山区| 康保县| 二连浩特市| 宜川县| 张家界市| 梅州市| 锦州市| 来宾市| 启东市| 隆子县| 章丘市| 日土县| 靖宇县| 兴山县| 车致| 临安市| 自贡市| 庆城县| 漾濞| 图片| 司法| 中西区| 晋州市| 桃园市|