优化单例模式:策略设计模式的应用与实践
1. 单例模式的困境
单例模式在软件开发中常被使用,但它也存在诸多问题。以数据库单例为例,如果数据库是一个实现细节,那么可能不存在良好的架构。因为数据库单例没有代表任何抽象,也无法让我们有效处理依赖关系。单例本身并非一个理想的设计模式,为了移除对数据库类的依赖,让架构更具可维护性和可测试性,我们需要引入抽象并使用真正的设计模式。
2. C++17 内存资源示例
让我们通过 C++17 的多态内存资源来探讨如何解决单例模式的问题。以下是一个示例代码:
#include <array>
#include <cstddef>
#include <cstdlib>
#include <memory_resource>
#include <string>
#include <vector>
// ...
int main()
{
std::array<std::byte,1000> raw; // Note: not initialized!
std::pmr::monotonic_buffer_resource
buffer{ raw.data(), raw.size(),
std::pmr::null_memory_resource() };
std::pmr::vector<std::pmr::string> strings{ &buffer };
// ...
return EXIT_SUCCESS;
策略模式优化单例设计
超级会员免费看
订阅专栏 解锁全文
1054

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



