zoukankan      html  css  js  c++  java
  • Head First Design Patterns Decorator Pattern

    Design Principle(Open-Closed Principle)

    • Classes should be open for extension, but closed for modification.

    The Decorator Pattern attaches additional responsibilitis to an object dynamically.

    Decorator provide a flexible alternative to subclassing for extending functionality.

    public abstract class Beverage{

      String description = "unknown Beverage";

      public String getDescription(){

        return description;

      }

      public abstract double cost();

    }

    public abstract class CondimentDecorator extends Beverage{

      public abstract String getDescription();

    }

    public class Espresso extends Beverage{

      public Espresso(){

        description = "Espresso";

      }

      public double cost(){

        return 1.99;

      }

    }

    public class HouseBlend extends Beverage{

      public HouseBlend(){

        description = "House Blend Coffee";

      }

      public double cost(){

        return 0.89;

      }

    }

    public class Mocha extends CondimentDecorator{

      Beverage beverage;

      public Mocha(Beverage beverage){

        this.beverage = beverage;

      }

      public String getDescription(){

        return beverage.getDescription +", Mocha";

      }

      public double cost(){

        return 0.20 + beverage.cost();

      }

    }

  • 相关阅读:
    网站
    世上本无事,庸人自扰之
    mac系招聘BBS
    新浪微博语录帝摘录
    dwz jui
    cheap vps
    facebook的开发标准
    rails的一些插件
    租房宝
    在Z10上用3G
  • 原文地址:https://www.cnblogs.com/zhuqiang/p/2469786.html
Copyright © 2011-2022 走看看