OOPでグループと協力してグループメンバーを設計しましたが、意見の相違があり、Web上で答えを見つけることができません。
寄付者とそのクレジットカードを含む組織を持つ非営利団体に似たソフトウェアを作成します。
1つの方法は、creditCardList
(コレクションクラス)はcreditCard
オブジェクトのみを格納して返す必要があるということです。次に、それらが返されるときに、Organization
クラスはprocessCard()
オブジェクトのメソッドとして各オブジェクトに対して実行される必要がありcreditCard
ます。
もう一方は、CreditCardList
すべてを処理し、コレクション内のすべてのアイテムを実行するループを含める必要があるということです。
一般的に言って、ソフトウェアのより良い設計は何ですか?
申し訳ありませんが、私は義務の分離の原則のためにこれらの2つのアプローチのどちらも選択しません。要件を正しく理解していれば、Organizationオブジェクトは、寄付を受け付けている慈善団体を表すエンティティです。また、CreditCardListは、支払い処理に使用されているすべてのクレジットカードのコレクションです。どちらも、支払い処理ロジックを保持するのに適した場所ではありません。
むしろ、のような名前の新しいヘルパークラスを紹介しPaymentProcessor
ます。このクラスには、と呼ばれるメソッドがありprocessPayment(List<CreditCard> creditCards)
ます。このメソッドには、クレジットカードからの支払いを処理するロジックが含まれている必要があります。この設計では、銀行口座からの口座振替やPayPalなどの他の方法を使用して支払いを処理するために、このクラスの他のメソッドを導入することもできます。
オブジェクト指向設計の原則に従って、保守性を向上させるために、1つの目的のために1つのクラスまたはインターフェースを用意する必要があります。
これがあなたの同僚との建設的な違いを解決するのに役立つことを願っています。:)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加