ソフトウェア設計の原則:コレクションをオブジェクトでの作業から分離しますか?

ケニー・ハマーランド

OOPでグループと協力してグループメンバーを設計しましたが、意見の相違があり、Web上で答えを見つけることができません。

寄付者とそのクレジットカードを含む組織を持つ非営利団体に似たソフトウェアを作成します。

プロセス図

1つの方法は、creditCardList(コレクションクラス)はcreditCardオブジェクトのみを格納して返す必要があるということです。次に、それらが返されるときに、OrganizationクラスはprocessCard()オブジェクトのメソッドとして各オブジェクトに対して実行される必要がありcreditCardます。

もう一方は、CreditCardListすべてを処理し、コレクション内のすべてのアイテムを実行するループを含める必要があるということです。

一般的に言って、ソフトウェアのより良い設計は何ですか?

ACloudRoamer

申し訳ありませんが、私は義務の分離の原則のためにこれらの2つのアプローチのどちらも選択しません。要件を正しく理解していれば、Organizationオブジェクトは、寄付を受け付けている慈善団体を表すエンティティです。また、CreditCardListは、支払い処理に使用されているすべてのクレジットカードのコレクションです。どちらも、支払い処理ロジックを保持するのに適した場所ではありません。

むしろ、のような名前の新しいヘルパークラスを紹介しPaymentProcessorます。このクラスには、と呼ばれるメソッドがありprocessPayment(List<CreditCard> creditCards)ます。このメソッドには、クレジットカードからの支払いを処理するロジックが含まれている必要があります。この設計では、銀行口座からの口座振替やPayPalなどの他の方法を使用して支払いを処理するために、このクラスの他のメソッドを導入することもできます。

オブジェクト指向設計の原則に従って、保守性を向上させるために、1つの目的のために1つのクラスまたはインターフェースを用意する必要があります。

これがあなたの同僚との建設的な違いを解決するのに役立つことを願っています。:)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

オブジェクトのコレクションに関するインターフェイス分離の原則

分類Dev

インターフェイス分離の原則をPythonオブジェクトに適用できますか?

分類Dev

ヌルオブジェクトパターンはインターフェイス分離の原則に違反しますか?

分類Dev

ガベージコレクションはソフトウェアの設計に悪影響を及ぼしますか?

分類Dev

オブジェクトコレクションから日付のコレクションを生成します

分類Dev

オブジェクトのコレクションからラムダ式を動的に構築しますか?

分類Dev

ItemsControl ItemsSourceを設定して、オブジェクトのコレクションと、親オブジェクトの1つ内の子オブジェクトのコレクションを表示するにはどうすればよいですか。

分類Dev

EF Core内のコレクションで分離オブジェクトを更新するにはどうすればよいですか?

分類Dev

既存のコレクションからオブジェクト初期化子でget-onlyコレクションを初期化します

分類Dev

オブジェクトのコレクションからマップを抽出する方法。キーをオブジェクトの同じフィールドの1つとして使用し、実際のオブジェクトを評価します。

分類Dev

Angular / lodash-コレクションから複数のオブジェクトを削除します

分類Dev

Angular / lodash-コレクションから複数のオブジェクトを削除します

分類Dev

Meteorはコレクションの配列オブジェクトから値を削除します

分類Dev

EFコアエラー-プロジェクトが見つかりませんでした。現在の作業ディレクトリを変更するか、-projectオプションを使用します

分類Dev

EFコアエラー-プロジェクトが見つかりませんでした。現在の作業ディレクトリを変更するか、-projectオプションを使用します

分類Dev

nodejsの他のコレクションオブジェクトに基づいてコレクションからオブジェクトをフェッチしようとしています

分類Dev

nodejsのセッションオブジェクトからレコードを取得します

分類Dev

nodejsを使用して、名前でコレクションからオブジェクトを取得します

分類Dev

クラスコンストラクターからのオブジェクトのコレクションをインスタンス化します

分類Dev

Firebaseオブジェクトを現在のスコープから分離します

分類Dev

コレクション内のオブジェクトに対してさまざまな順序でいくつかのメソッドを実行する

分類Dev

誰かがlaravel5.5で「非オブジェクト...」を取得しないための確かな原則を教えてもらえますか?

分類Dev

コレクションオブジェクトのコレクションからユーザー定義オブジェクトを取得する方法

分類Dev

mongodbコレクションの埋め込み配列オブジェクトから特定のフィールドのみを取得します

分類Dev

ソフトウェアコレクションの新しいPHPバージョンでDrupalのdrushcronジョブを実行する

分類Dev

オブジェクトがGroovyのコレクションにあるかどうかを確認します

分類Dev

Angularディレクティブ:コレクションからオブジェクトを返します

分類Dev

WPF DataGrid-DataGrid ItemsSourceオブジェクトのコレクション値から行(オブジェクト)ごとに一意のコンボボックス値を設定します

分類Dev

Androidのクラウドファイヤーストアからコレクション内のオブジェクトのリストを取得するにはどうすればよいですか?

Related 関連記事

  1. 1

    オブジェクトのコレクションに関するインターフェイス分離の原則

  2. 2

    インターフェイス分離の原則をPythonオブジェクトに適用できますか?

  3. 3

    ヌルオブジェクトパターンはインターフェイス分離の原則に違反しますか?

  4. 4

    ガベージコレクションはソフトウェアの設計に悪影響を及ぼしますか?

  5. 5

    オブジェクトコレクションから日付のコレクションを生成します

  6. 6

    オブジェクトのコレクションからラムダ式を動的に構築しますか?

  7. 7

    ItemsControl ItemsSourceを設定して、オブジェクトのコレクションと、親オブジェクトの1つ内の子オブジェクトのコレクションを表示するにはどうすればよいですか。

  8. 8

    EF Core内のコレクションで分離オブジェクトを更新するにはどうすればよいですか?

  9. 9

    既存のコレクションからオブジェクト初期化子でget-onlyコレクションを初期化します

  10. 10

    オブジェクトのコレクションからマップを抽出する方法。キーをオブジェクトの同じフィールドの1つとして使用し、実際のオブジェクトを評価します。

  11. 11

    Angular / lodash-コレクションから複数のオブジェクトを削除します

  12. 12

    Angular / lodash-コレクションから複数のオブジェクトを削除します

  13. 13

    Meteorはコレクションの配列オブジェクトから値を削除します

  14. 14

    EFコアエラー-プロジェクトが見つかりませんでした。現在の作業ディレクトリを変更するか、-projectオプションを使用します

  15. 15

    EFコアエラー-プロジェクトが見つかりませんでした。現在の作業ディレクトリを変更するか、-projectオプションを使用します

  16. 16

    nodejsの他のコレクションオブジェクトに基づいてコレクションからオブジェクトをフェッチしようとしています

  17. 17

    nodejsのセッションオブジェクトからレコードを取得します

  18. 18

    nodejsを使用して、名前でコレクションからオブジェクトを取得します

  19. 19

    クラスコンストラクターからのオブジェクトのコレクションをインスタンス化します

  20. 20

    Firebaseオブジェクトを現在のスコープから分離します

  21. 21

    コレクション内のオブジェクトに対してさまざまな順序でいくつかのメソッドを実行する

  22. 22

    誰かがlaravel5.5で「非オブジェクト...」を取得しないための確かな原則を教えてもらえますか?

  23. 23

    コレクションオブジェクトのコレクションからユーザー定義オブジェクトを取得する方法

  24. 24

    mongodbコレクションの埋め込み配列オブジェクトから特定のフィールドのみを取得します

  25. 25

    ソフトウェアコレクションの新しいPHPバージョンでDrupalのdrushcronジョブを実行する

  26. 26

    オブジェクトがGroovyのコレクションにあるかどうかを確認します

  27. 27

    Angularディレクティブ:コレクションからオブジェクトを返します

  28. 28

    WPF DataGrid-DataGrid ItemsSourceオブジェクトのコレクション値から行(オブジェクト)ごとに一意のコンボボックス値を設定します

  29. 29

    Androidのクラウドファイヤーストアからコレクション内のオブジェクトのリストを取得するにはどうすればよいですか?

ホットタグ

アーカイブ