gpt4 book ai didi

oop - 铁路票价计算可以使用哪种设计模式?

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

我正在开发一种类似于铁路票务的解决方案。

背景:给出了来自泰米尔纳德邦的 18 个火车站。乘客需要一张票。对于最多 5 个车站的旅程,票价为 10 卢比。 5站后,每5站,将收取5卢比的额外费用。对于完整的旅程,即从第一站到最后一站,票价为卢比。 20.

例如

Input 1 : StationFrom - Guindy, StationTo - Kadambakkam
Output 1 : Print ticket. i.e. StationFrom : Guindy, StationTo : Kadambakkam, Total Stops : 3, Total Fare : 10

Input 2 : StationFrom - Guindy , StationTo - Chennai Fort
Output 2 : Print ticket. i.e. StationFrom : Guindy, StationTo : Chennai Fort, Total Stops : 8, Total Fare :15

future 可以添加更多的票价计算业务规则。

问题是,在票价计算中哪些设计模式是正确的选择?

最佳答案

策略 模式也适合您的要求。您可以为 5、10、20 站票价定义多个策略类。根据站点数量,您可以加载相应的策略。您可以使用工厂方法首先创建票价对象。 策略 + 工厂方法 + 构建器 组合适合您。

  1. BaseFareRule、AgeRule、StationsRule、DistanceRule、FestivalRule是核心策略(接口(interface))

  2. 这些策略中的每一个都有具体的实现。获取特定策略,如 FiveStationTenStation 策略使用 FactoryMethod 模式。甚至您可以拥有多个 FiveStation 策略,并且可以通过规则配置动态更改实现。策略最适合这种类型的需求。

  3. FareRuleBuilder 是一个构建器类,具有许多使用 Composition 模式配置的规则集。

无论装饰器或策略如何,规则都是接口(interface)。两种解决方案都需要 Builder 和 FactoryMethod

您可以在解决方案中使用 Decorator 或 Stretegy(一个问题可以有多个解决方案),但我更喜欢策略,它是票价计算的核心组件

关于oop - 铁路票价计算可以使用哪种设计模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31955220/

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