c++ 解耦设计模式
时间: 2023-12-07 22:39:04 浏览: 183
C++中常用的解耦设计模式包括工厂模式、抽象工厂模式、适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式、观察者模式和命令模式等。这些设计模式的共同点是将程序的业务逻辑与实现细节分离,从而提高代码的可读性和可维护性,同时也方便了代码的重用和扩展。
其中,工厂模式和抽象工厂模式可以将对象的创建和使用分离,使得程序更加灵活;适配器模式可以将不兼容的接口转换为兼容的接口,使得不同的类可以协同工作;装饰者模式可以动态地为对象添加新的功能,而不需要修改原有的代码;代理模式可以为其他对象提供一个代理,从而控制对该对象的访问;外观模式可以为复杂的子系统提供一个简单的接口,使得客户端可以更加方便地使用该子系统;桥接模式可以将抽象部分和实现部分分离,从而使得它们可以独立地变化;组合模式可以将对象组合成树形结构,从而使得客户端可以像处理单个对象一样处理整个树形结构;享元模式可以共享对象,从而减少内存的使用;观察者模式可以将对象的状态和行为分离,从而使得对象可以更加灵活地响应变化;命令模式可以将请求封装成对象,从而使得请求可以被记录、撤销和重做。
下面是一个使用工厂模式的例子:
```c++
#include <iostream>
using namespace std;
// 抽象产品类
class Product {
public:
virtual void use() = 0;
};
// 具体产品类A
class ProductA : public Product {
public:
void use() {
cout << "ProductA" << endl;
}
};
// 具体产品类B
class ProductB : public Product {
public:
void use() {
cout << "ProductB" << endl;
}
};
// 抽象工厂类
class Factory {
public:
virtual Product* createProduct() = 0;
};
// 具体工厂类A
class FactoryA : public Factory {
public:
Product* createProduct() {
return new ProductA();
}
};
// 具体工厂类B
class FactoryB : public Factory {
public:
Product* createProduct() {
return new ProductB();
}
};
int main() {
Factory* factory = new FactoryA();
Product* product = factory->createProduct();
product->use();
delete product;
delete factory;
return 0;
}
```
阅读全文