问题描述:
我新建了一个父类,子类按照房源类别来继承。比如二手房一个子类,租房一个子类。
现在我想写一个方法查房源价格。由于在mysql里面二手房和租房的type不同,所以想查房源价格,需要知道他是二手房还是租房。
那么这个方法我应该写在父类里面,带上房源类型参数。还是分别写在两个子类里面呢?哪种更好?(除了这个房源类型参数之外,两种类别取价格的方法没有区别)
先说把,我也是做房产项目的。我觉得你这个不对,查询价格的方法应该单独出来。
// PriceDao.java
public BigDecimal queryPrice(type,houseid) {
// 你的逻辑
return price;
}
至于你二手房还是出租房的房屋价格,说实在的[ 也许 ]你可以放在你price
的getter方法里面
Class 二手房{
private BigDecimal price;
public BigDecimal getPrice() {
return PriceDao.queryPrice(二手房,100001);
}
}
但是实际上这种方法不好,你在一个对象里面不应该包含逻辑代码,最多包含一些属性和getter、setter
方法,至于价格,你完全可以在获取这套房源的时候调用PriceDao.queryPrice(二手房,100001);
然后通过setter方法设置进去。
我的问题
请问难道不能直接一条sql把价格直接和房源一起查出来么?为什么要先查房源再去查价格啊!!!left join 价格表
一次就带出来了,实在有需求说不能一次带出来,那么上面的方法你可以参考。
15 回答8.4k 阅读
8 回答6.2k 阅读
3 回答2k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
不太建议使用继承,可以用一个房源接口,二手房和租房实现它,之后建立一个价格类,包含房源接口,计算价格的时候调用房源接口的计算方法,简单用代码写一下:
这样设计的话,不管之后怎么加房源,都可以用一个CalcPrice去计算。
命名不规范,可以忽略~~~