gpt4 book ai didi

oop - 如何设计对象?

转载 作者:行者123 更新时间:2023-12-04 13:25:06 25 4
gpt4 key购买 nike

因此,有许多种构造对象的方法(我在这里说的是OOP)。对于这个问题,我将使用OOP的经典“汽车”示例。基本上,当两个程序结构都能实现目标时,我如何知道何时将汽车制成对象,或者将汽车的车轮制成对象?

如何对对象的各个部分进行分类和分类,以确定它们是否更适合作为对象的简单属性或变量,或者它们本身是否确实需要成为对象?

最佳答案

首先,您必须意识到的是OOAD(“面向对象的分析和设计”)是一种工具,而不是达到目的的手段。您从该过程中得到的只是一个模型,而不是您所建模的真实表示。该模型做出某些假设。该模型的目的是解决您遇到的问题。

那么,您如何知道如何设计对象?您怎么知道您做对了吗?最终结果:它解决了您的问题吗?

因此,对于“汽车”示例,在某些模型中,汽车数量可能只是整数,例如,通过交通模型中的交叉路口的汽车交通。在这样的模型中,您很少关心汽车的制造,模型或构造,而只关心数量。您可能关心的是车辆的类型,例如卡车还是小汽车。您是否使用汽车或卡车将其建模为“车辆”对象?还是仅将carCount和truckCount计数分开?

简短的答案是:哪个效果最好。

某种事物是否是物体的正常测试是否具有行为?请记住,最终对象=数据+行为。

因此,您可能会说汽车具有以下状态:

车轮的

  • 悬挂高度;
  • 左或右驱动器;
  • 颜色;
  • 宽度;
  • 重量;
  • 长度;
  • 高度;
  • 门的
  • ;
  • 是否有天窗;
  • 是否具有立体声,CD播放器,MP3播放器和/或卫星导航;
  • 汽油箱的大小;
  • 气缸数;
  • 涡轮增压和/或燃油喷射的
  • 最大扭矩;
  • 最大制动马力;
  • 等。

  • 您可能只关心其中的一小部分:选择任何相关的内容。赛车游戏可能会更详细地介绍车轮,例如车轮的温度,磨损程度,宽度和胎面类型等。在这种情况下,因为汽车具有多个车轮并且车轮是可互换的,所以车轮对象可以说是所有状态的集合(但行为很少)。

    这就提出了关于对象的第二点:由于某种关系使得一个对象可以代表完整的数据集,因此一个对象可以存在。因此,车轮可能具有胎面,宽度,温度等。您不能将其分开,说汽车有胎面但没有轮宽,因此将Wheel当作对象是有意义的,因为Wheel的整体是可以互换的。

    但这又对正在做的事情有意义吗?这是关键问题。

    关于oop - 如何设计对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1780998/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com