设计模式之装饰者模式

一 装饰者模式

      装饰者模式:动态的将责任附加到对象身上。若要扩展,装饰者模式比继承更加有弹性。

      装饰者模式秉承这一个开放,关闭原则。就是对扩展开放,对修改关闭,也就是说对该类可以做扩展,但是不可以修改该类的原始功能。

二  装饰者模式的示例

       这里我们列举一个奶茶店的例子。起初,这个奶茶店只卖普通茶。代码示例如下:

 先定义一个材料的接口:

public abstract class Material {
	
	String desc;
	
	public String getDesc(){
		return desc;
	}
	
	public abstract float cost();

}

再定义一个普通的茶:

public class Tea extends Material{
	
	public Tea(){
		this.desc = "普通的茶";
	}

	@Override
	public float cost() {
		// TODO Auto-generated method stub
		return 5.0f;
	}

}

如果有顾客来买茶的话,那么只需要new 一个Tea对象即可,后来奶茶店扩张了,种类多样了,开始卖奶茶了,还有珍珠奶茶等多种茶,那么这个时候,我们是否需要去创建奶茶以及珍珠奶茶等多个对象呢?如果按照这个思路创建下去的话,那么将来有一百种奶茶,那么势必得创建一百个java类然后继承Material,如此下来,到时候种类继续扩展,多

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值