设计模式之装饰器模式

一、介绍

装饰器模式是一种结构型的设计模式。使用该模式的目的是为了较为灵活的对类进行扩展,而且不影响原来类的结构。装饰器设计模式比继承要灵活,避免了继承体系臃肿,而且降低了类与类之间的关系。装饰类通常会通过构造方法接收被装饰的对象,并基于被装饰的对象的功能,提供更强的功能。

二、实现

比如招聘,之前的岗位是Java开发工程师,现在我们要发布一个会Java技能也要掌握Python语言的岗位。我们就可以使用装饰器模式来实现。

开发工程师接口,声明一个方法skill(),表示开发技能。

public interface Developer {
    void skill();
}

Java开发者类,实现Developer

public class JavaDeveloper implements Developer {
    @Override
    public void skill() {
        System.out.println("精通Java");
    }
}

装饰器类,实现Developer,并要求掌握Python技能。

public class DeveloperDecorator implements Developer {

    private Developer developer;

    public DeveloperDecorator(Developer developer) {
        this.developer = developer;
    }

    @Override
    public void skill() {
        developer.skill();

        pythonSkill();
    }

    public void pythonSkill() {
        System.out.println("可以用python辅助工作");
    }
}

测试,打印输出结果

public class MainTest {
    public static void main(String[] args) {
        Developer developer = new JavaDeveloper();
        developer.skill();
        System.out.println("----------------");
        DeveloperDecorator decorator = new DeveloperDecorator(developer);
        decorator.skill();
    }
}
精通Java
----------------
精通Java
可以用python辅助工作

 

posted on 2020-10-02 18:09  lvguoliang(学无止境)  阅读(49)  评论(0)    收藏  举报