设计模式之GOF23装饰模式

装饰模式decorator

作用:

-动态的为一个对象增加新功能

-装饰模式是一种用于代替继承的技术,无需通过增加子类就能扩展对象的新功能,适用对象的组合关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀

角色:

-Component抽象构件角色:真实对象和装饰对象具有相同的接口,这样,客户端对象就能够以与真实对象相同的方式与装饰对象进行交互

-ConcreteComponent具体构件角色(真实对象):被装饰的角色

-Decorator装饰角色:实现相同接口,并持有一个抽象构件的引用,这样既可以完成客户端的所有请求,又可以增添新的功能

-ConcreteDecorator具体装饰角色:负责给构建对象增加新的责任

装饰模式和桥接模式的区别:

两个模式都是为了解决过多子类对象问题,但桥接模式的诱因是多个维度多个原因导致的多重继承,装饰模式是为了增加新的功能

例子:跑车

原文地址:https://www.cnblogs.com/code-fun/p/11335280.html