WEB开发网
开发学院软件开发Java 面向 Java 开发人员的 db4o 指南: 超越简单对象 阅读

面向 Java 开发人员的 db4o 指南: 超越简单对象

 2010-04-01 00:00:00 来源:WEB开发网   
核心提示:一段时间以来,在 面向 Java 开发人员的 db4o 指南 中,面向 Java 开发人员的 db4o 指南: 超越简单对象,我查看了各种使用 db4o 存储 Java 对象的方法,这些方法都不依赖映射文件,以后的文章还将深入探讨更加高级的结构化对象处理问题,作为补充,使用原生对象数据库的其中一个优点就是可以避免对象关

一段时间以来,在 面向 Java 开发人员的 db4o 指南 中,我查看了各种使用 db4o 存储 Java 对象的方法,这些方法都不依赖映射文件。使用原生对象数据库的其中一个优点就是可以避免对象关系映射(也许这不是重点),但我曾用于阐述这种优点的对象模型过于简单,绝大多数企业系统要求创建并操作相当复杂的对象,也称为结构化对象,因此本文将讨论结构化对象的创建。

结构化对象 基本上可以看成是一个引用其他对象的对象。尽管 db4o 允许对结构化对象执行所有常用的 CRUD 操作,但是用户却必须承受一定的复杂性。本文将探究一些主要的复杂情况(比如无限递归、层叠行为和引用一致性),以后的文章还将深入探讨更加高级的结构化对象处理问题。作为补充,我还将介绍探察测试(exploration test):一种少为人知的可测试类库及 db4o API 的测试技术。

从简单到结构化

清单 1 重述了我在介绍 db4o 时一直使用的一个简单类 Person:

清单 1. Person

package com.tedneward.model; 
 
public class Person 
{ 
  public Person() 
  { } 
  public Person(String firstName, String lastName, int age, Mood mood) 
  { 
    this.firstName = firstName; 
    this.lastName = lastName; 
    this.age = age; 
    this.mood = mood; 
  } 
   
  public String getFirstName() { return firstName; } 
  public void setFirstName(String value) { firstName = value; } 
   
  public String getLastName() { return lastName; } 
  public void setLastName(String value) { lastName = value; } 
   
  public int getAge() { return age; } 
  public void setAge(int value) { age = value; } 
   
  public Mood getMood() { return mood; } 
  public void setMood(Mood value) { mood = value; } 
 
  public String toString() 
  { 
    return 
      "[Person: " + 
      "firstName = " + firstName + " " + 
      "lastName = " + lastName + " " + 
      "age = " + age + " " + 
      "mood = " + mood + 
      "]"; 
  } 
   
  public boolean equals(Object rhs) 
  { 
    if (rhs == this) 
      return true; 
     
    if (!(rhs instanceof Person)) 
      return false; 
     
    Person other = (Person)rhs; 
    return (this.firstName.equals(other.firstName) && 
        this.lastName.equals(other.lastName) && 
        this.age == other.age); 
  } 
   
  private String firstName; 
  private String lastName; 
  private int age; 
  private Mood mood; 
} 

1 2 3 4 5 6  下一页

Tags:面向 Java 开发

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