首页 > 编程语言 > 详细

C++模板工厂示例

时间:2020-06-19 21:42:02      阅读:101      评论:0      收藏:0      [点我收藏+]
/// 1.定义数据访问接口
class IDataAccessInterface
{
public:
  virtual IDataInterface(){}
  /// 执行数据库 增删改操作
  virtual void exeSql(string strSql) = 0;
};
 
/// 2.数据访问接口实现类
class CDataAccessImp: public IDataInterface 
{
  CDataAccessImp(){}
  virtual ~CDataAccessImp() {}
  void exeSql(string strSql) {cout<<"CDataAccessImp"<<endl;}
};
 
/// 3.获取数据库实例的工厂
///  不需要在工厂的getInstance中进行大量的if判断(类似java的反射)
template<typename T>
class CFactoryManager
{
public:
  static SmartPtr<IDataInterface> getInstance();
};
 
template<class T>
SmartPtr<IDataInterface> CFactoryManager<T>::getInstance()
{
  SmartPtr<IDataInterface> pImp(new T());
  return pImp;
}
 
/// 4.测试如下:
SmartPtr<IDataAccessInterface> pDataAccessInterface = CFactoryManager<CDataAccessImp>::getInstance();
pDataAccessInterface->exeSql("DELETE FROM student WHERE ID=1");

C++模板工厂示例

原文:https://www.cnblogs.com/kinglxg/p/13166360.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!