停车位 车辆

假设,我们现在有个vechice对象,和一个parking lot对象 。 现在需要描述一个功能,停车, 这需要把车和parking lot对象起来。请问,这部分逻辑,放在哪个对象好? 有什么规则呢

在面向对象设计中,停车(park)这个功能涉及两个对象:车辆(vehicle)和停车场(parking lot)。一般有以下几种设计选择:

  1. 放在 ParkingLot 对象里:
    停车场负责管理停车逻辑,比如检查空位、登记车辆等。通常推荐将“停车”方法(如 park(vehicle))放在 ParkingLot 类中,因为停车场拥有资源(车位),负责分配和管理。

  2. 放在 Vehicle 对象里:
    车辆可以有一个 park(parkingLot) 方法,但实际操作还是由停车场完成。车辆只是请求停车,具体实现还是 ParkingLot。

  3. 独立的服务类:
    如果逻辑复杂,可以有一个 ParkingService 类,负责协调车辆和停车场。

【推荐规则】

  • 谁拥有资源,谁负责管理。停车场拥有车位,负责分配和登记,所以“停车”逻辑应放在 ParkingLot。
  • Vehicle 只持有自己的状态,不负责管理停车场资源。
  • 如果涉及多个停车场或复杂业务,可用服务类协调。

总结:
“停车”逻辑一般放在 ParkingLot 对象里,实现 park(vehicle) 方法。这样职责清晰,易于维护和扩展。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值