コレクションで戻り値を集めるコレクティングパラメータ|Collecting Parameter
記事更新日:2024-02-04
![サムネイル](https://tsukiusagi.biz/wp-content/uploads/2022/01/css.png)
関数の
戻り値を
ひとまとめ
戻り値を
ひとまとめ
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit1-2.png?resize=150%2C150&ssl=1)
関数を細かく分割すると、結果も細かくなるから
結果を収集するパラメータを渡す方が直接的です
imprementation Patterns
it is more direct to pass a parameter that will collect the results.
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/04/rabbit4-2-1.png?resize=150%2C150&ssl=1)
収集も管理も一括で
コレクティング・パラメータとは|Collecting Parameter
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit3.png?resize=150%2C150&ssl=1)
戻り値をコレクションに格納してもらう手法
- 関数の結果を格納していく収集用パラメータ
- コレクション(配列、リスト、key-value型オブジェクト等)に戻り値を格納する
key-value型がおすすめ
key-value型はkeyでの管理がしやすい
(ディクショナリ、連想配列、マップ、オブジェクト等、言語によって呼び名が異なる)
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit1-2.png?resize=150%2C150&ssl=1)
VBAやPythonならディクショナリ
コレクティング・パラメータの利点
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit3.png?resize=150%2C150&ssl=1)
結果が複数でも、格納先は1つになる
- 複数の結果を1つに格納できる
- 変数を増やす必要がない
- 1つを管理すればいいので、簡潔になる
- 型の違いを気にする必要がない
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit1-2.png?resize=150%2C150&ssl=1)
どんな型でも格納できる
コレクティング・パラメータの使い方
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit3.png?resize=150%2C150&ssl=1)
箱を1つ用意して、その箱を各関数へ持ち込む
- 関数へコレクションを渡す
- 関数は、計算結果をコレクションに格納する
- 結果が格納されたコレクションを戻り値として受け取る
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit1-2.png?resize=150%2C150&ssl=1)
「ここに入れてください」と指定してしまう
コレクションの扱い方(戻り値の格納方法)
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit3.png?resize=150%2C150&ssl=1)
状況に応じて、2つのうちのどちらかになる
- keyは呼び出し元で生成し、関数内で更新をする
- どんな答えが返ってくるかを先に明示しておける
- keyは未作成のまま、関数内で新規追加する
- keyが作成済かどうかを気にしなくていい
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit1-2.png?resize=150%2C150&ssl=1)
keyは自分で作るのか、関数にまかせるのか
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/04/rabbit4-2-1.png?resize=150%2C150&ssl=1)
ちなみに、収集用ではなく、状態の引き渡しをおこなう場合はパラメータ・オブジェクトと呼ぶ
パラメータ・オブジェクトの導入は、コードを短くし、その意図を明確にする
imprementation Patterns
The introduction of the parameter object shortens the code, explains its intent
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit1-2.png?resize=150%2C150&ssl=1)
収集用にしても、状態の引き渡し用にしても、オブジェクト(コレクション)が扱いやすい
戻り値を
コレクションで
まとめる
コレクションで
まとめる
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/04/rabbit4-2-1.png?resize=150%2C150&ssl=1)
引数をまとめる場合は、パラメータ・オブジェクト
2024-02-04
編集後記:
この記事の内容がベストではないかもしれません。
記事一覧
-
現場で役立つ設計の原則 【プログラミング学習】現場で役立つシステム設計の原則〜変更を楽で安全にするオブジェクト指向の実践技法 -
引数をまとめたい 複数の引数をまとめて読みやすくするパラメータ•オブジェクト|Parameter Object -
メモリとストレージ 【メモリとストレージ】プログラミングに必要な保存と計算の区別 -
コミュニケーションシンプル柔軟 プログラミングのストレスを軽減する3つの価値観【Imprementation Patterns】 -
オブジェクト指向を整理する 【プログラミング学習】オブジェクト指向でなぜつくるのか -
理論を学ぶ理由 プログラミング理論は学習すべきか【Imprementation Patterns】