设计模式总结
装饰器模式(Decorator Pattern)的核心作用是在不修改原有对象代码的前提下,动态地给对象添加新功能,同时保持接口的一致性。它通过“包装”原有对象,实现功能的扩展或增强,比继承更灵活。
具体作用场景:
- 功能动态扩展:比如给一个基础的“文本编辑器”对象,通过装饰器依次添加“拼写检查”“语法高亮”“自动保存”等功能,且这些功能可以按需组合,无需修改编辑器本身的代码。
- 避免继承臃肿:如果用继承实现上述功能,可能需要创建“带拼写检查的编辑器”“带高亮和保存的编辑器”等多个子类,导致类结构复杂。而装饰器通过组合方式,可灵活搭配功能。
- 单一职责原则:每个装饰器只负责一个功能(如单独的拼写检查装饰器),职责清晰,便于维护和扩展。
简单说,装饰器模式就像给手机“套壳”——手机本身功能不变,通过不同的壳(装饰器)增加防摔、散热、美观等额外功能,且壳可以随时更换或组合。