资源管理器的作用在游戏开发和其它应用里是非常有用的。
设计资源管理应该做到通用。一般做法是采用单根继承的资源对象。就是所有的对象都需要从单根派生。这样的做法不是特别灵活(好处是做成动态连接库的时需要注意的东西比较少)。
所以我比较喜欢的是使用模板。模板唯一的缺点就是做动态库比较恶心(这个恐怕只有做过的人才能体会。),但是基于基于模板的管理器类处理各种需要变化的算法比较麻烦。比如,各种调度算法,不同的资源需要有不同的方式去创建。前面发布过一个资源管理器。http://blog.csdn.net/Nhsoft/archive/2005/11/19/532884.aspx 并没有很好解决这个问题了。
处理这个问题比较好的方案是把各种策略做成一个个模板参数。方法如下:
template <typename ResType> class TSimpleResCreator
{
public:
ResType* newInstance()
{
return ResType::newInstance();//ResType;
}
void deleteInstance(ResType* pRes)
{
ResType::deleteInstance(pRes);
}
};
template <typename ResType , typename _TCreator = TSimpleResCreator<ResType> >
class TBaseResMgr : public _TCreator , public IResManager
{
}
这里使用了一个创建策略。这样的话可以采用不同的创建策略,比如纹理和文件的创建方法显然是不一样的。
接下来的工作,要把其它的策略分开。比如资源淘汰算法。。。。。
分享到:
相关推荐
Java 第二阶段提升编程能力【泛型】---- 代码 Java 第二阶段提升编程能力【泛型】---- 代码 Java 第二阶段提升编程能力【泛型】---- 代码 Java 第二阶段提升编程能力【泛型】---- 代码 Java 第二阶段提升编程能力...
补充知识:泛型1---马克-to-win java视频的详细描述与介绍
Java泛型和集合]-英文版
侯捷——STL和泛型编程笔记1-4讲
后端研究-泛型机制在Apla-Java程序生成系统中实现的方法研究.pdf
补充知识2 ---马克-to-win java视频泛型的详细描述与介绍
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是...
NULL 博文链接:https://simon-9527.iteye.com/blog/2307148
Delphi泛型库--DGL(The Delphi Generic Library) 在Delphi中实现的类型安全、高效、易用的泛型容器和算法库;借鉴了C++标准中的STL;
一个泛型子类继承一个泛型父类时,子类泛型参数传值给父类泛型参数 Son--Father 4; 定义子类时子类泛型参数给定占位符,同时父类泛型参数可以赋值 public class Son,Y>:Father,string> 5:一个泛型子类继承一个...
全面总结Java泛型--实例
Go泛型示例代码go-generics-example用法$ go build -gcflags = -G = 3要求Go 1.17或更高版本广告进入Go语言的泛型为我们带来了什么?又名mattn)
【Java基础】泛型方法 - 右撇子 - 博客频道 - CSDN.NET
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是...
泛型应用--图的深度(广度)优先遍历.成语接龙例
个人制作且上课使用的课件,希望对大家初步了解泛型相关内容有一定的帮助。个人制作且上课使用的课件,希望对大家初步了解泛型相关内容有一定的帮助。
包含11个Word文档,包含了C#的集合、字符串和正则表达式、泛型、内存管理和指针、反射、线程和同步、.NET的安全性、COM的互相操作性、文件和注册表操作、使用GDI+画图、Windows Presentation Foundation。...
实际上函数在调用这个模板的时候,已经实例化了这个函数(即替换模板参数为正确参数类型)这时候在后台处理的时候,其实Show函数已经实例化为了下面这个样子 void Show(int left, double right) ...
介绍获取方法的参数和返回值类型(包括Type和Class)获取泛型参数类型(包括对象的泛型参数或集合元素的泛型类型)方法首先我们定义一个类:public cla
基于java的开发源码-java多线程反射泛型及正则表达式学习笔记和源码.zip 基于java的开发源码-java多线程反射泛型及正则表达式学习笔记和源码.zip 基于java的开发源码-java多线程反射泛型及正则表达式学习笔记和源码....