值对象要点
1.要私有化,所有变量
2.要有一个变量为主键,(方便比较和查找吧)
3.要私有化构造方法
4.主键要写hashCode()和equals(Object obj)方法。
5.toString()方法建议写。
6.是不是要考虑写一个查询得值对象方法专门用来对方范围查询。(二依一下)
7.实现序列化 implements Serializable ;
条件查询的思路:
//把所有数据记录查询出来,然后遍历所有记录并把不符合查询条件的记录
//过滤掉(采用卫条件、反逻辑来实现),把剩下的存入一个结果集,最后返回这个结果集
//卫条件使用时,要两层结构第一层判断是否有这个查询条件,第二次层才是查询条件的反面用来过滤掉。
if(uqm.getUuid()!=null && uqm.getUuid().trim().length()>0){//外层:判断用户是否输入该查询条件---该条件是否是有效的查询条件
if(!uqm.getUuid().trim().equals(model.getUuid())){//内层:判断当前对象model是否符合该查询条件
continue;
}
}
工厂方法:要私有化函构造数。
UI:从用户收集来的数。要校 验。
要活用枚举,枚举有限制作用。
多个包里面存在相同的类名的时候,调用时候采用类全名
cn.hncu.bookStore.book.ui.ListPanel(this);
cn.hncu.bookStore.user.ui.ListPanel(this);
1值对象:第一步肯定是根据市写值对象,写值对象的时候首先要写两个部分,一个本身设计时候,需要用到的。还有一个是专门显示给顾客看的。再写一个专门用来查询的值对象(针对范围查询),比如正常的值对象的年龄可能只有一个,但是查询的时候可能查询是把最大年龄和最小年龄范围内的信息。
2.DAO数据层:在这一层,不要弄得太复杂,仅仅完成增、删、改、查(单、全、范围)。等功能。其他复杂的放到逻辑层去搅。
3.逻辑层,逻辑层写的时候,是根据表现层需要的。调用数据层的时候,不要去调用其他模块的数据层,去调用其他模块的逻辑层是可以的。同时有些特定的功能,表现层不好实现,逻辑层应当写好提供过去。比如 User模块可以给In,Out 模块提供 两个getInUser 和getOutUser的方法。
4.表现层:表现层尽量只调用我们自己的逻辑层,当需要用到别的逻辑层的时候可以通过自己逻辑层来调。这样的好处在于便于修改。
5.当同样的功能需要多次使用的时候可以写成一个抽象方法,
知识点: