我需要代表客户付款才能在机场购买机票。 机场系统有奖金制度。
因此,客户可以通过奖金或其他支付系统或一起支付机票。但我不知道如何一起代表这一切。
我想创建一个名为PaymentMethod
的接口并创建此层次结构:ByPaymentSystem
(接口),ByBonuse
(类),ByMix
(依赖于{{的类) 1}})
支付系统也将有很多实现方式。 :
ByPaymentSystem
,webmoney
等等。
此外,我还希望制作一个mastercard
课程,其中包含PaymentService
方法,该方法将采用参数pay
,并且还会获取有关付款方式的具体信息。
我不确定method:PaymentMethod
课程,我的精神想要避开这门课程。
你怎么看待它?
请不要打破我的声誉,只是评论你的意见。我将审查他们,而不是决定这个主题的命运。另外,如果有必要的话,我会想象我在UML类图中对subj的所有想法。
这是我的图表的一部分草稿
我想制作类似的东西,但我不知道如何进一步处理。 如何用混合案例表示付款:奖金和信用现金。
UPD: 该项目是avia公司的网站。该公司拥有奖励里程系统。这意味着经常飞行的客户可以获得一些免费的千米奖金,因为他们可以支付部分航班费用。 当然,他们可以通过信用卡付款,甚至可以结合使用这些方法。 - 我有股票。如何表示这种组合?
我需要代表满足上述愿望的类图。
UPD:
答案 0 :(得分:2)
您应该从问题域的模型开始。我期待以下内容:
此图说明:
Customer
提供一个或多个Payment
到Payment Service
Payment Service
接受 提供的一个或多个Payments
Customer
Payment
都有amount
Payment
必须是Mileage Payment
,Cash Payment
或Credit Card Payment
Payment
s 要在解决方案域方面回答您的问题,我会让您的pay()
方法接受一系列付款。对于每种Payment
,您不需要从属接口,只需要各种类实现。我会使用多态操作来借记(如果这是正确的词),如果有任何失败则回滚,并在所有借记成功时提交。