装饰( Decorator )模式又叫做包装模式。通过一种对客户端透明的方式来扩展对象的功能,是继承关系的一个替换方案。
抽象组件角色: 一个抽象接口,是被装饰类和装饰类的父接口。 package com.org.decorator; public interface Car { public void show(); public void run();} 具体组件角色:为抽象组件的实现类。抽象装饰角色:包含一个组件的引用,并定义了与抽象组件一致的接口。package com.org.decorator;public abstract class CarDecorator implements Car{ private Car car; public Car getCar() { return car; } public void setCar(Car car) { this.car = car; } public CarDecorator(Car car) { this.car = car; } public abstract void show();}具体装饰角色:为抽象装饰角色的实现类。负责具体的装饰。package com.org.decorator;public class SwimCarDecorator extends CarDecorator { public SwimCarDecorator(Car car) { super(car); } public void show() { this.getCar().show(); this.swim(); } public void swim() { System.out.println("¿ÉÒÔÓÎ"); } public void run() { }}