Java 设计模式 - 装饰者模式
2017-03-04 16:31
316 查看
基本概念
装饰者模式的作用:装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。
适配器模式的角色:
Component,抽象构件,它表示定义了某种功能的接口
ConcreteComponent,具体构件,实现了构件接口(Component),表示实现具体功能的类。
Decorator,抽象装饰类,与 Component 关联并继承了 Component 接口。
ConcreteDecorator,具体装饰类,负责给 Component 添加额外的功能。
Component、ConcreteComponent 可以称为被装饰者。Decorator、ConcreteDecorator 可以称为装饰者。
实例探究
Component,抽象构件,定义一个 Person 接口,具有 work 的功能。public interface Person { void work(); }
ConcreteComponent,具体构件,实现了 Person 接口以及 work 功能。
public class Man implements Person { @Override public void work() { System.out.println("man is working"); } }
Decorator,抽象装饰类,关联了被装饰者实例并继承了被装饰者。
public abstract class FilterPerson implements Person { private Person person; public FilterPerson(Person person) { this.person = person; } public void work(){ person.work(); } }
ConcreteDecorator,具体装饰类,为被装饰者的功能添加额外的东西。
public class LazyMan extends FilterPerson { public LazyMan (Person person) { super(person); } public void work(){ try { // 休息休息再干活 Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } super.work(); } }
具体调用如下:
Person lazyMan = new LazyMan(new Man()); lazyMan.work();
相关文章推荐
- Head First Java 设计模式——装饰者模式
- java设计模式---装饰者模式(简单笔记)
- JAVA设计模式初探之装饰者模式
- 设计模式 - 装饰者模式(Decorator Pattern) Java的IO类 用法
- 设计模式 - 装饰者模式(Decorator Pattern) Java的IO类 使用方法
- java设计模式之装饰者模式
- java 设计模式 学习笔记(三)装饰者模式 推荐
- JAVA设计模式初探之装饰者模式
- Java 设计模式 装饰者模式
- Java设计模式菜鸟系列(三)装饰者模式建模与实现
- 【Java设计模式】装饰者模式
- JAVA系列-设计模式-装饰者模式
- JAVA设计模式——装饰者模式
- java设计模式之装饰者模式Decorator
- Java 装饰者设计模式
- Java设计模式之装饰者模式
- JAVA设计模式——装饰者模式
- java 设计模式中 装饰者模式 与 代理模式的区别
- java设计模式学习(三)装饰者模式(decorator)
- 设计模式 - 装饰者模式(Decorator Pattern) Java的IO类 使用方法