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();

      }

    }

  • 相关阅读:
    每日一练leetcode
    java 中 int与string的相互转化
    每日一练leetcode
    每日一题leetcode
    每日一练leetcode
    每日一练leetcode
    每日一题leetcode
    Three20在IOS6中不能正常使用 迎客
    苹果提供的支付功能接口 迎客
    ios随记 迎客
  • 原文地址:https://www.cnblogs.com/zhuqiang/p/2469786.html
Copyright © 2011-2022 走看看