装饰模式学习总结

本文详细介绍了装饰模式的概念、类图、实例及其在C#中的应用。通过实例展示了如何利用装饰模式动态地给对象增加职责,如在图书管理系统中添加冻结和遗失功能。此外,还探讨了装饰模式的简化、透明与半透明装饰模式的区别,并提供了一个多重加密的案例,展示其灵活性和扩展性。虽然装饰模式能够避免过度使用继承,但也可能导致系统复杂度的增加和调试困难。
摘要由CSDN通过智能技术生成

目录

 

装饰模式

引言

定义

模式类图

实例

实例描述

实例类图

代码实现

模式扩展

透明装饰模式和半透明装饰模式

实例

实例描述

实例类图

代码实现

总结

模式优点

模式缺点


装饰模式

引言

装饰模式是一种用于替代继承的技术,它通过一种无需定义子类的方式来给对象动态地增加职责,使用对象之间的关联关系取代类之间的继承关系。

定义

英文定义:"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)。使用装饰模式设计该系统。

实例类图

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值