首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >面向对象设计中的交互设计

面向对象设计中的交互设计
EN

Software Engineering用户
提问于 2017-01-11 06:32:21
回答 1查看 342关注 0票数 2

我正在为像Uber这样的计程车应用程序创建一个面向对象的设计。我列出了一些课程。我在设计班级之间的行为方面有困难。例如,我有这两个类- CustomerDriver

顾客可以打电话给司机,司机可以接受顾客的搭便车要求。

所以我的想法是Customer类会有一个函数contactNearByDrivers()Driver类将有一个类似于getRideRequest()的函数

我有两个问题-

  1. 联系附近司机并确认司机反应的实际实施应该在哪里?我的想法是,可以有一个实用程序类,比如说CustomerDriverInteraction。这个类实际上将具有与司机联系和记录他们的响应的功能。contactNearByDrivers()函数在Customer类中将实例化CustomerDriverInteraction并调用其函数。这是个很好的方式吗?
  2. 一旦一个司机接受了一个请求,客户和驱动程序就需要连接在一起。应该有另一个名为Ride的类吗?Ride类将有一个CustomerDriver对象作为它们的成员,以及其他字段。这个方法正确吗?设计它的更好方法是什么?
EN

回答 1

Software Engineering用户

回答已采纳

发布于 2017-01-11 07:20:09

您的第一个问题可以通过为“运营总部”添加另一个抽象来解决,让我们调用类Headquarter。这个程序可以负责联系驱动程序,但是它不会是一个“实用程序类”,也不会被contactNearByDrivers实例化。相反,它将被实例化一次,它将被告知所有汽车的位置,每个客户都可以持有一个参考总部,要求在那里搭便车。

对于第二个问题:这取决于您希望在模型中支持的用例。如果您唯一的用例是“为位于附近的客户寻找免费汽车”,那么就不需要使用Ride类了。但是,如果你的目的是编写一个程序,它可以计算一次乘车的费用,或者对过去执行的乘车情况做一些记账,那么你可能需要一个。

我强烈建议循序渐进地这样做。不要“提前”模仿太多这样的课程。试着实现第一个用例,比如“驱动程序注册/取消注册”--你只需要两个类就可以了。在下一次迭代中,实现用例"customer要求headquearter搭便车“,并找出实现这个过程所需的类。如果您对正确的类建模,如果您对它们进行了正确的建模,那么最简单的测试就是它们是否帮助您实现您的程序,以及如果模型最终不包含任何您的程序实际上不需要的内容。

票数 3
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/339941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档