设计模式之装饰器模式
一、介绍
装饰器模式是一种结构型的设计模式。使用该模式的目的是为了较为灵活的对类进行扩展,而且不影响原来类的结构。装饰器设计模式比继承要灵活,避免了继承体系臃肿,而且降低了类与类之间的关系。装饰类通常会通过构造方法接收被装饰的对象,并基于被装饰的对象的功能,提供更强的功能。
二、实现
比如招聘,之前的岗位是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辅助工作
浙公网安备 33010602011771号