gpt4 book ai didi

java - 软件设计原理 : Seperate your collection from working on an object?

转载 作者:行者123 更新时间:2023-11-29 06:51:33 24 4
gpt4 key购买 nike

在 OOP 中与一个小组合作设计一个小组成员,我有一个分歧,我在网上找不到答案。

创建一个类似于非营利组织的软件,该组织的组织有捐助者及其信用卡。

process diagram

一种方法是 creditCardList(集合类)应该只存储和返回 creditCard 对象。然后,当返回它们时,Organization 类应该为每个对象运行 processCard() 作为 creditCard 对象的方法。

另一方面是 CreditCardList 应该处理所有内容并包含遍历集合中所有项目的循环。

一般来说,什么是更好的软件设计?

最佳答案

抱歉这么说,但我不会选择这两种方法来实现职责分离原则。如果我对要求的理解正确,那么 Organization 对象是代表接受捐赠的慈善组织的实体。 CreditCardList 是用于支付处理的所有信用卡的集合。它们都不是保存支付处理逻辑的好地方。

相反,我会引入一个新的辅助类,其名称类似于 PaymentProcessor .此类将有一个名为 processPayment(List<CreditCard> creditCards) 的方法.此方法应包含处理信用卡付款的逻辑。通过这种设计,您还可以在此类中引入其他方法,以使用其他方式(例如直接从银行帐户或 PayPal 借记)处理付款。

根据 OO 设计原则,为了更好的可维护性,我们应该只有一个类或接口(interface)用于一个目的。

我希望这可能有助于解决您与同事之间的建设性分歧。 :)

关于java - 软件设计原理 : Seperate your collection from working on an object?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46635005/

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