当前位置: 网学 > 编程文档 > JAVA > 正文

面向Java开发人员db4o指南:数组和集合

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/16
下载{$ArticleTitle}原创论文样式
p;= new ArrayList<Person>(); 
private Person mother; 
private Person father; 
}

  即使包括所有这些代码,清单 2 提供的家庭关系模型还是过于简单。在这个层次结构中的某些地方,必须处理那些 null 值。但是,在 db4o 中,那个问题更应该在对象建模中解决,而不是在对象操作中解决。所以现在我可以放心地忽略它。 

  填充和测试对象模型 

  对于清单 2 中的 Person 类,需要重点注意的是,如果以关系的方式,使用父与子之间分层的、循环的引用来建模,那肯定会比较笨拙。通过一个实例化的对象模型可以更清楚地看到我所谈到的复杂性,所以我将编写一个探察测试来实例化 Person 类。注意,清单 3 中省略了 JUnit 支架(scaffolding)。 

  清单 3. 幸福家庭测试 

@Test public void testTheModel()
{
Person bruce = new Person("Bruce", "Tate", 
Gender.MALE, 29, Mood.HAPPY); 
Person maggie = new Person("Maggie", "Tate", 
Gender.FEMALE, 29, Mood.HAPPY); 
bruce.setSpouse(maggie); 

Person kayla = maggie.haveBaby("Kayla", Gender.FEMALE); 

Person julia = maggie.haveBaby("Julia", Gender.FEMALE); 

assertTrue(julia.getFather() == bruce); 
assertTrue(kayla.getFather() == bruce); 
assertTrue(julia.getMother() == maggie); 
assertTrue(kayla.getMother() == maggie); 

int n = 0; 
for (Iterator<Person> kids = bruce.getChildren(); kids.hasNext(); )
{
Person child = kids.next(); 

if (n == 0) assertTrue(child == kayla); 
if (n == 1) assertTrue(child == julia); 

n++; 
}
}

  目前一切尚好。所有方面都能通过测试,包括小孩 ArrayList 的使用中的长嗣身份。但是,当增加 @Before 和 @After 条件,以便用我的测试数据填充 db4o 数据库时,事情开始变得更有趣。 

  清单 4. 将孩子发送到数据库 

@Before public void prepareDatabase()
{
db = Db4o.openFile("persons.data"); 

Person bruce = new Person("Bruce", "Tate", 
Gender.MALE, 29, Mood.HAPPY); 
Person maggie = new Person("Maggie", "Tate", 
Gender.FEMALE, 29, Mood.HAPPY); 
bruce.setSpouse(maggie); 

bruce.setHomeAddress(
new Address("5 Maple Drive", "Austin",
"TX", "12345")); 
bruce.setWorkAddress(
new Address("5 Maple Drive", "Austin",
"TX", "12345")); 
bruce.setVacationAddress(
new Address("10 Wanahokalugi Way", "Oahu",
"HA", &qu

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号