2021-08-29

无耳科技 Solon v3.0.8 发布,Java 企业级应用开发框架 Solon 是新一代,Java 企业级应用开发框架。是杭州无耳科技有限公司的“根级”开源项目(最近“杭州六小龙”很火啊,我们也是杭州的哦)。从零开始构建(No Spring、No Java-EE、No Servlet),有灵活的接口规范与开放生态。采用对商用友好的 Apache 2.0 开源协议。 阅读详情

常用设计模式-装饰者模式

顾名思义,装饰者装饰者,肯定是对一件东西进行装饰。这里说的装饰就是对我们的类行为进行装饰;既然有装饰者,肯定有被装饰者;先看一下下面的一张图(画了半天类图没画明白)就用这个替代吧。

实现
继承
继承
实现
行为接口
装饰者
扩展装饰者1
扩展装饰者2
被装饰者

1.首先我们有一个公共行为接口,加入里面有方法A,装饰者,和被装饰者都需要实现这个接口;
2.装饰者是需要持有被装饰者的实例的
3.装饰者1装饰者2 需要继承装饰者,然后对方法进行增强操作。

接下来看代码:

接口

//公共行为的接口
public interface Component{
	public void methodA();
}

被装饰者

//被装饰者类实现Component接口
public class ConcreteComponent implements Component{
	public void methodA(){
		System.out.println("方法A实现")
	}
}

装饰者

//装饰者类实现Component接口
public class Decorator implements Component{
	//持有被装饰者对象
	protected Component component;
	//构造方法
	Decorator(Component component){
		super();
		this.component = component
	}
	//方法A实现
	public void methodA(){
		component.methodA();
		System.out.println("装饰者对被装饰者的methodA()方法的增强")
	}
}

扩展装饰

//扩展的装饰者继承装饰者Decorator类
public class DecoratorChild extends Decorator {
	//持有被装饰者对象
	protected Component component;
	//构造方法直接调用父类
	Decorator(Component component){
		super(component);
	}
	//方法A实现
	public void methodA(){
		//如果你需要父类Decorator 的增强,直接调用super.methodA(); 
		super.methodA(); 
		//如果你不需要父类Decorator 的增强,注释掉上面一行,直接调用被装饰者的methodA()方法
		component.methodA();
		System.out.println("DecoratorChild 类在Decorator 基础之上再次对
		对被装饰者的methodA()方法进行扩展增强")
		
	}
}

总结:

装饰者模式定义:以装饰的方式,动态的将责任附加到对象上。
优点:在不改变具体类代码,动态叠加增强行为功能。而且,装饰者模式,提供了比继承更有弹性的扩展方案,你既可以使用父类的扩展,也可以自己实现扩展,动态的选择增强。

OV9734 DATASHEET,完整规格书 OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等 立即下载

相关推荐

上一篇: 2021-08-29
下一篇: Redis基本功能详解
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值