这周五我要参加“软件工程”考试,但是有一点我听不懂,老师也无法解释。
我必须基于边界控制器实体 (BCE) 模式创建一个项目,并具有持久性(数据库或顺序文件,但我将使用 SQLite)。我应该使用保存/加载方法来实现实体类,这些方法将数据放入/从持久层中取出。他们使用 DAO。
例如:
public class someEntity
{
private int someData;
public void set_someData (int _someData) {this.someData = _someData;}
public int get_someData () {return this.someData;}
public void save ()
{
DAO dao = new DAO ();
dao.openConnection ();
dao.insert (this.someData);
dao.closeConnection ();
}
到目前为止,一切都清楚了。
当我实现“加载”方法时,我想使用搜索参数(数据库中的主键)用数据库中的数据“填充”我的实体实例。但是,例如,如果我想让所有出生于 1980 年之前的人都出生,我该怎么办?
我心中唯一的解决方案是将以下内容实现到控制器类中
ArrayList <people> pList= new ArrayList ();
people p;
for (int i = 1900 ; i < 1980 ; i++)
{
p = new people ();
if (p.load (i) == true); //returns true if has found corresponding entry in db
{
pList.add(i);
}
}
这完全是疯了,不是吗?
所以,我需要一个返回集合的“加载器”方法,这样我就可以在 DAO 中实现一个返回所有出生于 1980 年之前的人的方法,只需一个简单的 SQL 查询。只有当控制类直接与 DAO 对话,忽略 BCE 模式规则时,才能做到这一点。
如果这是一个真正的问题,我该如何解决这个问题?