JAVAWEB学习文章索引点这里
装饰者设计模式
装饰者设计模式,指的是通过包装类的方式,动态地增强某个类的功能。其特点如下:
1,包装类和被包装类要实现同样的接口。某些时候也可以是继承一些实现类。
2,包装类持有一个被包装对象(通常在包装类的构造方法中传递一个被包装类的对象的参数)
3,包装类在实现接口的过程中,对于不需要包装的方法原封不动得调用被包装对象的方法来实现,需要包装的方法自己实现
下面一个手机的例子:
package com.test;
//手机
interface Phone{
void action();
}
//普通手机
class NormalPhone implements Phone{
@Override
public void action() {
System.out.println("打电话");
}
}
class SmartPhone implements Phone{
NormalPhone nlPhone = null;
public SmartPhone(NormalPhone nlPhone) {
this.nlPhone = nlPhone;
}
@Override
public void action() {
nlPhone.action();
//智能手机的增强内容
System.out.println("可以玩游戏");
}
}
public class PhoneDemo {
public static void main(String[] args) {
System.out.println("---------被装饰之前--------");
NormalPhone nlPhone = new NormalPhone();
nlPhone.action();
System.out.println("------被装饰之后,在原有的功能下得到了加强------");
SmartPhone smPhone = new SmartPhone(nlPhone);
smPhone.action();
}
}