设计模式:Decorator Pattern(装饰着模式) IO流装饰器
·
设计模式应用场景
需要设计的类可以动态扩展和删除一些功能
实现方式
给职责定义一个接口类型,动态给一个类添加职责,这个职责可以在类构建的时候传入,也可以在类生成后传入
代码实现:
1.创建抽象类,定义装饰方法
abstract class DecoratorObject{
//装饰方法
abstract void decorator();
}
2.创建装饰器父类,定义编写装饰器构建需要的参数
abstract class TestDecorator extends DecoratorObject{
DecoratorObject object;
public TestDecorator(DecoratorObject object) {
this.object = object;
}
@Override
abstract void decorator();
}
3.创建A和B两个装饰器
class A extends TestDecorator {
public A(DecoratorObject object) {
super(object);
}
@Override
void decorator() {
object.decorator();
System.out.println("A__decorator");
}
}
class B extends TestDecorator {
public B(DecoratorObject object) {
super(object);
}
@Override
void decorator() {
object.decorator();
System.out.println("B__decorator");
}
}
4.创建C为被装饰的类,继承DecoratorObject
class C extends DecoratorObject {
@Override
void decorator() {
System.out.println("C__decorator");
}
}
5.main方法测试
public static void main(String[] args) throws Exception{
DecoratorObject c = new A(new B(new C()));
c.decorator();
}
测试结果

6.IO流装饰着模式
public static void main(String[] args) throws Exception{
File f = new File("D:/test.data");
FileOutputStream fos = new FileOutputStream(f);
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
bw.write("IO流测试");
bw.flush();
bw.close();
}
结果

更多推荐
所有评论(0)