码迷,mamicode.com
首页 > 其他好文 > 详细

装饰模式

时间:2019-03-11 09:15:23      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:类的方法   bsp   动态   nbsp   实例   ati   string   vat   一个   

  顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。

public interface Source {
    void method1();
}


public class A implements Source {
    @Override
    public void method1() {
        System.out.println("这是A对象的功能");
    }
}


public class B implements Source {
    @Override
    public void method1() {
        System.out.println("这是B对象的功能");
    }
}



public class Decorator implements Source {
    private Source sourse;

    public Decorator(Source sourse) {
        super();
        this.sourse = sourse;
    }

    @Override
    public void method1() {
        System.out.println("这是装饰类的方法");
        sourse.method1();
    }
}

  

因为装饰类的构造器里面有一个参数是Source接口,所以只要把传入的参数改变就可以实现动态的更改扩展的功能

 

下面是测试

public class Test {
    public static void main(String[] args) {
        Source a=new A();
        Source b=new B();
        Source decoratorA = new Decorator(a);
        decoratorA.method1();
        Source decoratorB=new Decorator(b);
        decoratorB.method1();
    }
}

  

技术图片

 

装饰模式

标签:类的方法   bsp   动态   nbsp   实例   ati   string   vat   一个   

原文地址:https://www.cnblogs.com/xiaobo520/p/10508327.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!