我想一个分类信息发布的系统
就象:http://www.zhantai.com www.ganji.com 一样的抽象的 info类
GenericInfo(一般的信息),HouseInfo(房产类信息),JobInfo(招聘类信息),
TradeInfo(交易类信息) 都是 Info 类的子类子类都有特殊的属性:HouseInfo(房产类信息) 有价格,几室几庭等大家说 我DAO(数据访问)层该怎么设计比较好呢 或整个系统该怎么设计比较好呢?一开始我用 <<工厂模式方法模式>>
InfoFactory接口
(GenericInfoFactory,HouseInfoFactory,JobInfoFactory,TradeInfoFactory 实现InfoFactory接口)
可有点问题. 最好的解决方案
就象:http://www.zhantai.com www.ganji.com 一样的抽象的 info类
GenericInfo(一般的信息),HouseInfo(房产类信息),JobInfo(招聘类信息),
TradeInfo(交易类信息) 都是 Info 类的子类子类都有特殊的属性:HouseInfo(房产类信息) 有价格,几室几庭等大家说 我DAO(数据访问)层该怎么设计比较好呢 或整个系统该怎么设计比较好呢?一开始我用 <<工厂模式方法模式>>
InfoFactory接口
(GenericInfoFactory,HouseInfoFactory,JobInfoFactory,TradeInfoFactory 实现InfoFactory接口)
可有点问题. 最好的解决方案
首先用你传进来的param确定想要得到的Info实现,再根据该Info指定Factory,然后用Factory返回Info,再从你的Manage里抛出来。不知道这样说对否。
* 抽象的工厂
*/
public interface InfoFactory
{
public Info createNewInfo(Info newInfo);
public Info createInfo(int infoId);
}
/**
* 房产类信息工厂
*/
public class HouseInfoFactory implements InfoFactory
{
public Info createNewInfo(Info newInfo)
{.......... }
public Info createInfo(int infoId)
{..........}
}
/**
* 招聘类信息工厂
*/
public class JobInfoFactoryimplements InfoFactory
{
public Info createNewInfo(Info newInfo);
{.......... }
public Info createInfo(int infoId)
{.......... }
}
...........
我的思路 和 设计是这样的 但家看看设计思路对吗可这样遇到一个问题: 就是在action 控制层 当知道 infoId 时候 不知道到底该用哪个具体
工厂的 createInfo(int infoId) 方法去得到这个具体的信息//或还有其它模式比较好解决这类系统问题吗 有人提到用 <<观察者模式>>
你的dao应该分开类别处理~虽然是同出一个info的超类,但是应该把业务逻辑分开处理!