WEB开发网
开发学院软件开发Java 面向 Java 开发人员的 db4o 指南: db4o 中的数据库... 阅读

面向 Java 开发人员的 db4o 指南: db4o 中的数据库重构

 2010-04-01 00:00:00 来源:WEB开发网   
核心提示: 清单 11. TypeAlias shuffleimportcom.db4o.config.*;//...TypeAliasfromPersonToIndividual=newTypeAlias("com.tedneward.model.Person","com.t

清单 11. TypeAlias shuffle

        import com.db4o.config.*; 
 
// ... 
 
TypeAlias fromPersonToIndividual = 
  new TypeAlias("com.tedneward.model.Person", "com.tedneward.persons.model.Individual"); 
Db4o.configure().addAlias(fromPersonToIndividual); 

当运行时,db4o 现在将查询数据库中的 Individual 对象的任何调用识别为一个请求,而不会查找存储的 Person 实例;这意味着,Individual 类中的名称和类型应该和 Person 中存储的名称和类型类似,db4o 将适当地处理它们之间的映射。然后,Individual 实例将被存储在 Person 名称之下。

更多重构方法
我还没有谈到 db4o 支持重构的所有方法,也就是说还有很多要学的东西。即使您发现 db4o 的重构选项不能很好地处理自己的情况,也仍然有旧的后备选项可用,您可以在要求的位置用一个临时名称创建新类,编写一些代码从旧类创建新类的对象,然后删除旧的对象,并将临时类重新命名为适当的名称。

结束语

由于对象数据库中的模式就是类定义本身,而不是采用不同语言的单独的 DDL 定义,因此本文中的每个重构例子都显得简单很多。db4o 中的重构是使用代码完成的,常常可以通过一个配置调用来确定,最坏情况也只不过是编写和运行一个转换实用程序,以将已有实例从旧的类型更新为新的类型。而且这种类型的转换对于几乎所有生产中的 RDBMS 重构都是必需的。

db4o 强大的重构能力使之在开发期间非常有用,因为在开发期间,正在设计的很多对象仍然是变化无常的,即使不需要每个小时都重构,至少也需要每天都重构。如果将 db4o 用于单元测试和测试驱动开发,则可以节省大量更改数据库的时间,如果重构只是简单的字段添加/删除或类型/名称更改,这一点就更加明显了。

这就是本文讨论的内容,但是请记住:如果要用对象编写应用程序,并且持久性存储实际上 “只是和实现有关”,那么为什么非得把很好的对象限制成规规矩矩、四四方方的样子呢?

本文示例源代码或素材下载

上一页  5 6 7 8 9 10 

Tags:面向 Java 开发

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接