Active Record

Active Record - An object that wraps a row in a database table or view, encapsultes the database access, and adds domain logic on that data.
Active Record包含了数据和行为。Active Record在本质上是Domain Model,只不过这个领域模型中的类和底层数据库的记录结构非常相似。Active Record的数据结构应该和数据库的紧密匹配:每个域对应数据库表中的一列。域的类型和数据库SQL提供的保持一致,并不需要在这个阶段进行类型转换。
Active Record类应该提供如下的方法:
  1. 从SQL的结果集中构造实例。
  2. 构造一个新的实例以供以后插入数据库使用。
  3. 包装了常用的SQL查询的静态查找方法,返回Active Record对象。
  4. 更新数据库和插入Active Record对象中的数据。
  5. 获取和设置域。(getter & setter)
  6. 实现某些领域逻辑。

Active Record适合于领域逻辑不太复杂的情况,简单的CRUD操作。Active Record很容易构建,也容易理解,不过问题在于只适合于Active Record对象和数据库表直接对应的情况;另外一个问题是它把对象设计和数据库设计耦合起来。

 

如果使用Transaction Script的话,Active Record是个很好的模式。可以从Gateway开始,然后逐步的重构,而得到Active Record。

你可能感兴趣的:(设计模式,数据结构,sql,领域模型,Access)