hjr学习-设计模式:业务逻辑层

来源:互联网 发布:sql server 免费吗 编辑:程序博客网 时间:2024/05/09 17:50

数据持久化

想要软件或系统重启后不丢失的数据需要做数据持久化,可以保存到数据库、文件等里面。

数据持久化一般有两种:
- DBHelper:这种比较经典,就是写一个类专门负责数据库各种操作,比如增删改查等等方法,然后其余的类调用,一般是传入一个SQL语句,然后执行语句、查询返回表格之类的。
- ORM:为了解决关系型数据库和对象型编程语言之间的冲突,把关系型数据库封装成业务实体对象,操作业务对象不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。

对比DBHelper和ORM

比如有两张表class班级表和student学生表,现在要查询学生表中id为1的学生的班级名,执行下面的非对象化(也就是结构化)查询操作:

DBHelper

//这些是数据访问层String sql = "select class.name from class,student where student.id=1 and student.classid=class.id"//这些是业务逻辑层DataTable db = DBhelper.Query(sql)String className = db.Rows[0][0];

可以看到数据访问层和业务逻辑层融合到一起了,这也是一般小项目业务逻辑层与数据访问层混合不清的原因。

对象关系映射(ORM)

//这些都是业务逻辑层StudentModel student = new StudentModel();String className = student.queryStudent(1).getclass();
//这些是数据访问层class StudentModel{    String class{set;get;}    queryStudent(String id)    {    //...    }}

班级通过一对多映射被自动映射到student对象中,不过我们需要自己写StudentModel模型的各种属性和方法。而StudentModel也就是数据访问层。

现在使用上述两种数据模型

缓存

把磁盘上的需要频繁读取的文件保存在内存中,提高之后的读取速度,或者是把网上的远程内容先下载到本地,提高本地读取的速度等。

业务逻辑层

组织

数据访问层+

模式

各种设计模式,工厂、策略、适配器……

1 0
原创粉丝点击