4.2过滤器和监听器——过滤器常用内容补充,装饰者设计模式

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();

    }
}

猜你喜欢

转载自blog.csdn.net/smallhc/article/details/80830950