装饰者模式

半世苍凉 提交于 2019-12-02 04:58:29

一:装饰者模式定义(mybatis的Executor。I/O流):

动态的给一个对象添加一些额外的职责,就增加功能而言,装饰模式相比生成子类更为灵活

二:装饰者模式特点:

一般由5部分组成。第一个是抽象的component组件类,第二个是具体的concreteComponete,也就是需要被装饰的类,第三个是抽象的装饰者类,该类也需要继承抽象的component组件类,同时将抽象组件类通过构造函数注入。第四个是具体的装饰类,这里定义需要装饰的方法。第五个是测试类。

三:装饰者模式实现:

抽象组件类:
public abstract class Component {
	public abstract void operate();
}
具体组件类:
public class ConcreteComponent extends Component {
	@Override
	public void operate() {
		System.out.println("核心处理的业务逻辑");
	}
}
抽象装饰者类:
public abstract class Decorator extends Component {
	private Component component = null;
	public Decorator(Component component) {
		super();
		this.component = component;
	}
	@Override
	public void operate() {
		this.component.operate();
	}
}
具体装饰者类:
public class ConcreteDecorator extends Decorator {
	public ConcreteDecorator(Component component) {
		super(component);
	}
	private void method_1() {
		System.out.println("具体的装饰逻辑11111");
	}

	@Override
	public void operate() {
		this.method_1();
		super.operate();
	}
}
测试类:
public class Test {
	public static void main(String[] args) {
		Component component = new ConcreteComponent();
		component = new ConcreteDecorator(component);
		component = new ConcreteDecorator_2(component);
		component.operate();
	}
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!