装饰设计模式(☆☆☆☆):
用途:用来增强被装饰的类的功能
好处:对原有的功能进行增强,继承也可以做到。继承父类,并重写父类的方法,就可以对父类的方法进行加强,但是耦合性太强了
而装饰模式,可以在耦合性不强的前提下,加强被装饰的类的功能
public class Demo6_Wrap {
/**
* 装饰设计模式的好处是:
* 耦合性不强,被装饰的类的变化与装饰类的变化无关
*/
public static void main(String[] args) {
//装饰设计模式
HeiMaStudent hms = new HeiMaStudent(new Student());
hms.code();
//装饰设计模式
BufferedReader br = new BufferedReader(new FileReader("zzz.txt"));
int c = br.read();
}
}
interface Coder {
public void code();
}
class Student implements Coder { //被装饰的类实现Coder接口
@Override
public void code() {
System.out.println("javase");
System.out.println("javaweb");
}
}
class HeiMaStudent implements Coder { //装饰类也要实现Coder接口
private Student s; //获取到被包装的类的引用
public ItcastStudent(Student s) { //通过构造函数创建对象的时候,传入被包装的对象
this.s = s;
}
@Override
public void code() { //对其原有功能进行升级
s.code();
System.out.println("数据库");
System.out.println("ssh");
System.out.println("安卓");
System.out.println(".....");
}
} |
|