设计模式——装饰者模式

  • 定义
动态地将责任附加到对象上。
	(扩展功能,装饰者是比继承更有弹性的替代方案)
  • 了解装饰者的实现过程
1.现有一个组件(对象),需要增加它的行为
2.采用装饰者模式扩展它。
3.首先是定义一个装饰者继承组件的父类接口,让装饰者获得与被装饰对象同样的类型。这里的目的不是继承被装饰者的行为。
4.因为装饰者需要代替被装饰者,所以它们必须是同一类型,这对使用者来说,总是用的同一类型,几乎没有任何变化。
5.装饰者中的行为是如何来的?是通过组合装饰者,得到了装饰者的行为。如:
	public class Decorator{
		Component component;//组合了装饰者,可以得到被装饰者的行为
		public Decorator(Compoment compoment){
			this.compomemt = compomemt;
		}
		public void method(){
			//增加的行为逻辑...
			component.method();//得到了具体被装饰者的行为
			//增加的行为逻辑...
		}
	}
6.因为组合的是被装饰者的父类,所以可以传入任何子类,增加了弹性。
7.如果想要增加新的行为,就可以重新写一个装饰者,而不用更改原来的代码。
8.如何装饰最开始的组件的?就像这样:
	//Component1是Component的子类
	Compoment component1 = new Decorator(new Component1());
	// Decorator和component1都是Component类型,这样完全没问题。装饰者的构造器中接收被装饰者,通过组合,得到了被装饰者的行为。
  • Java中的装饰者
Java I/O

在这里插入图片描述

  • 代码示例
design-mode-demo/src/pattern/decorator/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值