问题1:在我的大学面向对象建模和设计的学习中,他们推荐考虑对象的方法可以做什么以及它的属性对应的职责是什么。所有澄清的尝试都导致了进一步的困惑。
这往往会生成一个类图,其中演员具有所有动作,而内部类仅保存数据。
这似乎不正确。还有其他思考建模对象的方式吗?
问题2:此外,该课程似乎强调根据其真实世界的对应物对对象进行建模,但在域模型中并不一定合理。例如,在医疗实践中,他们有 Patient: CreateAppointment(),CancelAppointment()
,但实际上并不是这样实现的(您将修改约会集合)。是否有其他思考方式?
问题1示例
秘书:记录约会,记录约会取消
约会:时间、日期...(无方法)
问题2示例
医生:看病人
虽然“看病人”是用例,但在实际类上作为方法是没有意义的。你如何思考这个问题?
car.wheelCount
这一点过于简单化了所有不同有效方法。例如,在预约方面,似乎更“清晰”的做法是doctorsOfficeSchedule.createAppointment(patient, ...)
。也就是说,我倾向于以数据为导向而非“面向对象”。 - user166390