设计模式:适配器与外部多态模式深度解析
1. 适配器模式概述
适配器模式是一种强大的设计模式,它能使原本不兼容的组件协同工作,与单一职责原则(SRP)相契合,也符合开闭原则(OCP)的意图。适配器就像一个间接层,将一组功能映射到另一组功能。它并不局限于一对一的映射关系,也能支持一对多的映射。
1.1 对象适配器与类适配器
- 对象适配器 :以
Pages类为例,它是一个对象适配器,通过存储被包装类型的实例来工作。为了增加灵活性,还可以存储指向基类的指针,这样就能适配第三方库中的各种文档类型。 - 类适配器 :通过继承被适配类型(如果可能,采用非公共继承)并实现预期接口。以下是一个类适配器的示例:
class Pages : public Document
, private OpenPages // Example for a class adapter
{
public:
// ...
void exportToJSON( /*...*/ ) const override
{
exportToJSONFormat(*this, /*...*/);
}
void serialize( ByteStream& bs, /*...*/ ) const override
{
this->convertToBytes(/*...*/);
}
超级会员免费看
订阅专栏 解锁全文
24

被折叠的 条评论
为什么被折叠?



