美文网首页
java设计模式——装饰模式

java设计模式——装饰模式

作者: TangBuzhi | 来源:发表于2017-10-16 18:21 被阅读0次

    装饰模式

    1.定义:

    动态的给一个对象添加一些额外的职责。就增加功能来讲,装饰模式比生成子类更为灵活。

    2.使用场景:

    • 需要透明且动态的拓展类的功能时。

    3.UML图

    4.详解:

    装饰模式(Decorator Pattern)也称为包装模式(Wrapper Pattern),结构型设计模式之一,其使用一种对客户端透明的方式来动态的扩展对象的功能,同时它也是继承关系的一种替代方案之一。
    代码举例:

    public interface Sourceable {
            void method();
        }
    
        public static class Source implements Sourceable {
            @Override
            public void method() {
                System.out.println("this is original method");
            }
        }
    
        public static class SourceDecorator implements Sourceable {
            private Source source;
    
            public SourceDecorator(Source source) {
                this.source = source;
            }
    
            @Override
            public void method() {
                System.out.println("before decorator");
                source.method();
                System.out.println("after decorator");
            }
        }
    

    测试代码:

    public static void main(String[] args) {
            Source source = new Source();
            Sourceable decorator = new SourceDecorator(source);
            decorator.method();
            /**输出结果:
             before decorator
             this is original method
             after decorator
             */
        }
    

    5.代码托管地址

    装饰模式

    相关文章

      网友评论

          本文标题:java设计模式——装饰模式

          本文链接:https://www.haomeiwen.com/subject/hjlluxtx.html