decorator模式

装饰模式:给对象添加装饰、添加功能。
例如有一块蛋糕,添上草莓就是草莓蛋糕,添上巧克力就是巧克力蛋糕,本质都是蛋糕,就是装饰物不同。

//定义蛋糕接口,
interface Cake{
	void print();
}
//具体的蛋糕,
class ConcreteCake implements Cake{
	void print(){
		system.out.print("这是一个蛋糕")
	}
}
//抽象装饰类,继承蛋糕接口,与蛋糕类具有一致性
abstract class Decorator implements Cake{
	//持有蛋糕接口,
	Cake cake;
}
//具体的草莓装饰
class Strawberry extends Decorator{
	Strawberry(Cake cake){
		this.cake=cake;
	}
	print(){
		system.out.print("添加草莓装饰")
		cake.print();
	}
}
//具体的巧克力装饰
class Chocolate extends Decorator{
	Chocolate (Cake cake){
		this.cake=cake;
	}
	print(){
		system.out.print("添加巧克力装饰")
		cake.print();
	
	}
}

public  class Main {
	public static void main(String[]args){
		Cake cake=new Chocolate(new Strawberry (new ConcreteCake ()));
		cake.print();
		//输出结果
		添加巧克力装饰
		添加草莓装饰
		这是一个蛋糕
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值