设计模式(九)装饰器模式
职责:动态的为一个对象增加新的功能 装饰器模式是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。 实现细节: ——Component抽象构件角色:真实对象和装饰对象有相同的接口。这样,客户端对象就能够以与真实对象相同的方式同装饰对象交互。 ——ConcreteComponent具体构件角色(真实对象):io流中的FileInputStream、 FileOutputStream ——Decorator装饰角色:持有一个抽象构件的引用。装饰对象接受所有客户端的请求,并把这些请求转发给真实的对象。这样,就能在真实对象调用前后增加新的功能。 ——ConcreteDecorator具体装饰角色:负责给构件对象增加新的责任。 开发中的使用场景: IO中输入流和输出流的设计 Swing包中图形界面构件功能 Servlet API中提供了一个request对象的Decorator设计模式的默认实现类HttpServletRequestWrapper,HttpServletRequestWrapper类增强了request对象的功能。 Struts2中,request,response,session对象的处理 1. 创建一个抽象组件ICar接口