工厂模式:创建对象的灵活性,解耦创建逻辑。构造器模式:对象保持一致状态,控制创建过程。单例模式:限制类实例化,实现全局访问。观察者模式:松耦合,事件订阅和通知。策略模式:动态切换算法,提高灵活性。适配器模式:适配不兼容接口,促进代码重用。装饰器模式:动态修改对象行为,保持可扩展性。

C++ 框架中的不同设计模式优势对比
引言
设计模式是代码组织和结构化的强大工具,在 C++ 框架中广泛应用。理解不同设计模式的优势对于选择最适合特定任务的模式至关重要。
工厂模式
立即学习“C++免费学习笔记(深入)”;
构造器模式
单例模式
观察者模式
策略模式
适配器模式
装饰器模式
实战案例:策略模式
考虑一个计算销售税的系统。不同州有不同的税率。使用策略模式,我们可以创建多个策略类,每个策略类对应一种税率。
struct TaxStrategy {
virtual double calculateTax(double amount) const { return 0.0; };
};
struct NoTaxStrategy : public TaxStrategy {
double calculateTax(double amount) const override { return 0.0; };
};
struct FlatTaxStrategy : public TaxStrategy {
double calculateTax(double amount) const override { return 0.1 * amount; };
};
class Sale {
public:
Sale(double amount, std::shared_ptr<TaxStrategy> tax_strategy)
: amount_(amount), tax_strategy_(std::move(tax_strategy)) {}
double getTotalAmount() const {
return amount_ + tax_strategy_->calculateTax(amount_);
}
private:
double amount_;
std::shared_ptr<TaxStrategy> tax_strategy_;
};
int main() {
Sale sale1(100.0, std::make_shared<NoTaxStrategy>());
Sale sale2(100.0, std::make_shared<FlatTaxStrategy>());
std::cout << "Sale1 total amount: " << sale1.getTotalAmount() << std::endl;
std::cout << "Sale2 total amount: " << sale2.getTotalAmount() << std::endl;
}在这个示例中,策略模式允许我们轻松切换不同的税率策略,而无需修改客户代码。
以上就是C++ 框架中,不同设计模式的优势对比的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号