gpt4 book ai didi

c# - 条件预订系统的最佳设计模式

转载 作者:太空狗 更新时间:2023-10-29 21:34:37 25 4
gpt4 key购买 nike

我正在根据大学 OOP 类(class)的规范构建航类预订系统。该系统必须用C#编写。我想知道解决以下问题的最佳方法是什么

The company currently operates a discount scheme. Western Isles residents get a 10% discount. Scotia also records the island of residence of these passengers for marketing purposes. Business travellers get a 25% discount and must supply their company name. Ordinary passengers do not normally receive a discount unless it is part of a current promotion, in which case they receive a 5% discount.

我是否应该有一个 passenger 类,每个不同类型的客户都从中继承?对此的任何帮助将不胜感激

最佳答案

在我看来,您不想继承 Passenger。继承意味着对象以某种方式发生变化,但乘客无论获得什么折扣,他仍然是乘客。换句话说,他的功能不会因为获得更大的折扣而改变。

您使用的这个示例与通常为 Decorator 模式给出的示例非常接近,尽管这通常是因为它表明可以将多个折扣应用于被装饰的对象(您的 Passenger案件)。查看 wiki 上的咖啡示例 here

另一种可能性是 Strategy 模式,这为您提供了一个干净的界面来为乘客创建机票,同时在内部它根据乘客的类型切换 DiscountStrategy请求一张票。

关于c# - 条件预订系统的最佳设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15381144/

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