Decorator Pattern

装饰器模式:

参考https://www.runoob.com/design-pattern/decorator-pattern.html

动态地给一个对象添加一些额外的功能。

装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。

被装饰类:

public interface Itf {
void method1();
}
public class A implements Itf {
public void method1(){
System.out.println("invoke method1()");
}
}
装饰类:
public class ADecorator implements Itf {
private Itf a;
public ADecorator(Itf a){
this.a=a;
}
public void method1(){
a.method1();
method2();
}
private void method2(){
System.out.println("another method:invoke method2()");
}
}
在装饰类中的同名方法method1中调用a对象的method1方法,除此之外还进行了method2的操作;
使用:
ADecorator ad=new ADecorator(new A());
ad.method1();
java中的InputStream,OutputStream就是使用了装饰器模式,例如:
File file=new File("1.txt");
BufferedInputStream bi=new BufferedInputStream(new FileInputStream(file));
bi是给FileInputStream增加了缓冲功能
posted @ 2023-03-02 14:14  平凡的人生不平凡的梦  阅读(15)  评论(0)    收藏  举报