GoF定义:动态地给一个对象添加一些额外的职责,就增加功能来说,Decorator模式相比生成子类更为灵活。
举例:家庭装修的费用有简装和精装之分,电器的购买需要另外算钱,购买不同的电器以及它们的数量的费用是不一样的,在程序实现上,可以使用装饰器模式。
代码:
输出:
总共费用:13500
总共费用:18500
上面的GetMoney可以有复杂一些的算法,装饰器模式可以很灵活方便地在被装饰对象上使用不同的算法。
GoF定义:动态地给一个对象添加一些额外的职责,就增加功能来说,Decorator模式相比生成子类更为灵活。
举例:家庭装修的费用有简装和精装之分,电器的购买需要另外算钱,购买不同的电器以及它们的数量的费用是不一样的,在程序实现上,可以使用装饰器模式。
代码:
输出:
总共费用:13500
总共费用:18500
上面的GetMoney可以有复杂一些的算法,装饰器模式可以很灵活方便地在被装饰对象上使用不同的算法。
微信扫码登录