在传统的三层架构里,事务层引用数据层通常都是直接new一个对象,如果是数据访问量大的时候,这样会对内存的开销非常大。我们可以使用模板和.net缓存机制来解决这一情况。
1.新建一个哈希表hashtable cachepool ,
2.创建方法
pubilc static T CreateDAL<T>()
{
type t=typeof(t);
string classname=t.fullname; //key
lock(cachepool ){
//判断哈希表中有没有些对象,没有则新建对象并插入哈希表中,有则返回对象
}
}
在有的时候事务层可以把方法返回的数据缓存起来,这时可以结合dynamicproxy(动态代理)实现。