装饰模式相对一个对象,动态性的为其添加功能不影响原来的基本功能
定义接口
public interface DecoratorInter {
public void makeWindow();
}
实现被装饰类
public class Window implements DecoratorInter {
@Override
public void makeWindow() {
System.out.println("制作窗户");
}
}
定义装饰的接口
public interface Decorator extends DecoratorInter {
@Override
public void makeWindow();
}
实现添加窗户边框的功能
public class Border implements Decorator {
private Window window = new Window();
public Border(Window window) {
this.window = window;
}
@Override
public void makeWindow() {
window.makeWindow();
System.out.println("添加边框");
}
}
要添加其他功能类似实现相同的装饰接口public class Main {
public static void main(String[] args) {
Window window = new Window();
Border border = new Border(window);
border.makeWindow();
}
}