目录
装饰模式
引言
装饰模式是一种用于替代继承的技术,它通过一种无需定义子类的方式来给对象动态地增加职责,使用对象之间的关联关系取代类之间的继承关系。
定义
英文定义:"Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality."。
中文定义:动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活。
享元模式重要等级★★★☆☆ 享元模式难度等级★★★☆☆
模式类图
装饰模式包含以下角色:
1.Componnet 抽象构件
2.ConcreteComponent 具体构件
3. Decorator 抽象装饰类:抽象装饰类是抽象构件的子类,并且维护一个指向抽象构件的引用,通过改引用可以调用装饰之前的对象方法。并通过扩展改方法,以达到装饰的目的。
4.ConcreteDecorator 具体装饰类
实例
实例描述
在某图书管理系统中,书籍类(Book)具有借书方法(BorrowBook)和还书方法(ReturnBook),现需要动态给书籍对象添加冻结方法(Freeze)和遗失方法(Lose)。使用装饰模式设计该系统。