在我的基础框架中,我喜欢有可以在多个项目中重用的类。大多数情况下,这些都是通用的,以提供灵活性。
我有一个很小的标题,用于存储数据并轻松获取数据。
#pragma once
#include <map>
#include <string>
namespace BaseFrameWork
{
template<class TValue, class TKey = std::string>
class Provider
{
public:
static TValue& Get(TKey const& key);
private:
static std::map<TKey, TValue> _dataMap;
};
}
是的,它只是地图的包装,但我喜欢它作为从中获取数据的中心位置。
例如,我可以Provider<Room>::Get("U-18")
从谁在乎从哪里获取加载的对象。
我承认拥有这样的全局对象是多么不受欢迎,但这不是公共 API 的一部分,仅用于团队可以使用它的个人项目。
我想知道的是这种模式是否有一个名称,如果它甚至是一个。我总是称它为 Provider-Pattern,因为它就是这样做的,提供东西,但我看到那已经被采用了。
请不要告诉我这段代码有多糟糕以及我应该如何为它感到难过。