java面向对象数据库之谜?
我目前正在学习OOP课程,这里是我的问题:
假设自行车租赁数据库:类别“bike”=>;“借用自行车”和“归还自行车”的子类。借来的自行车具有附加字段“到期日期”,而归还的自行车具有字段“位置”
任务是扩展此数据库,以处理您可以从租赁中心借用的各种东西。但是,实现需要尽可能面向对象。我一直在浏览我的Java书籍,但还没有找到一个聪明的解决方案
那么,我如何添加每个项目(自行车、旱冰鞋等)的功能“借用”或“返回”是否与相关的附加字段一起使用,而不对每种类型的项目都有单独的子类
(我建议我的老师,每个‘项目’的状态要么是‘借用’要么是‘返回’,但我被告知这还不够面向对象)
感谢您的帮助
# 1 楼答案
而不是把
borrowed bike
和returned bike
作为自行车子类 你可以按照一种方法来上课item
带有变量nameOfItem
和type
它可以是自行车、滚柱或任何其他。 它将维持一个实例# 2 楼答案
为借来的和归还的创建两个接口
# 3 楼答案
用
getStatus()
方法创建一个接口,并让所有的项类实现它# 4 楼答案
使用
interface
:然后通过实现
interface
,为所有不同的项创建abstract
类现在
extend
这些abstract
类:# 5 楼答案
给所有对象(自行车、旱冰鞋等)一个借来或归还的简单方法是创建一个超级类
例:
如果使用bike扩展这个类,那么就可以调用可借用的方法,而无需重新编写代码
# 6 楼答案
你能做的就是为每个项目创建一个类类型, 创建Item类,它是一个泛型类,并从中继承借用Item和返回Item的两个子类