dao设计(四),预留实现(接口作为参数)
2018-03-01 19:36
169 查看
在查询缓存处理中,我们常常需要考虑一种情况,就是缓存不存在,然后需要去数据库中获取,如果每次都用if else来处理,那么代码看起来就会很冗余,现在我们来看下这种有意思的方式。
在dao框架设计中,缓存处理相关的我们可以设计成一个类,如ObjectCacheManager,如更新缓存,删除缓存,根据id获取等通用方法,在获取方法上,我们希望如果getById获取不到数据,能预留一个方法去DB中获取,这个方法自然丢给上层去实现,这里可以将ObjectCacheManager设计成abstract方法,但这样继承关系就会很多,不利于扩展,此时我们可以在getById传入一个参数,类型为接口,接口包含一个获取方法的接口,这样实现起来就很自然,获取不到就通过这个接口的方法去获取,接口参数的实现丢给调用方。
在dao框架设计中,缓存处理相关的我们可以设计成一个类,如ObjectCacheManager,如更新缓存,删除缓存,根据id获取等通用方法,在获取方法上,我们希望如果getById获取不到数据,能预留一个方法去DB中获取,这个方法自然丢给上层去实现,这里可以将ObjectCacheManager设计成abstract方法,但这样继承关系就会很多,不利于扩展,此时我们可以在getById传入一个参数,类型为接口,接口包含一个获取方法的接口,这样实现起来就很自然,获取不到就通过这个接口的方法去获取,接口参数的实现丢给调用方。
相关文章推荐
- C#控制台基础 函数的参数是接口 实现接口的类都可以作为参数,很好用
- 将节点作为模板参数的二叉树的设计,以及常用二叉树算法(求公共祖先等)的实现
- 创建一个直角三角形类(regular triangle)RTriangle类,实现下列接口IShape。两条直角边长作为RTriangle类的私有成员,类中包含参数为直角边的构造方法。
- 在实现从excel中读取数据作为接口参数遇到的问题
- DAO,Service接口与实现类设计
- C++下实现同接口下多个类作为参数的调用和传参
- 通过接口来实现多态性,接口可以作为参数
- 程序设计二:基于接口程序设计思想的模板实现、面向方面的程序设计
- c#接口作为参数传递、返回
- (了解)类前置声明实现接口和实现分离 必须使用指针 且不能作为基类
- http接口请求参数签名工具类的实现和测试代码
- MyBatis根据接口和xml实现Dao功能
- mybatis源码学习--spring+mybatis注解方式为什么mybatis的dao接口不需要实现类
- Mybatis使用Mapper代理的方式生成DAO接口的实现类对象
- 基于.NET平台的分层架构实战(五)——接口的设计与实现
- mybatis泛型DAO接口的设计
- Win32 调试接口设计与实现浅析 [2] 调试事件
- Hadoop之InputFormat接口的设计与实现
- zTree实现地市县三级级联DAO接口测试
- Atitit 通用接口的设计与实现attilax 总结