C#でメソッドの引数が増えすぎて可読性が悪くなったことはありませんか?
「Collecting Parameterパターン」 を使うと、引数の増加によるコードの複雑化を防ぎ、柔軟なメソッド設計が可能になります。
本記事では、C#のサンプルを交えながら、このパターンの使い方を初心者向けにわかりやすく解説します。
目次
Collecting Parameterパターンとは?
Collecting Parameterパターン とは、メソッドの引数が増えすぎるのを防ぐために、パラメータを1つのオブジェクトにまとめる設計パターン です。
オブジェクトを使ってパラメータをまとめることで、可読性や拡張性が向上します。
なぜこのパターンが必要なのか?
以下のような状況では、Collecting Parameterパターンを適用すると便利です。
- メソッドの引数が多すぎる → どのパラメータが何を意味しているのか分かりにくい
- 新しいパラメータを追加するたびにメソッドを修正しなければならない → 修正範囲が広がりやすい
- 複数のメソッドで同じ引数セットを使用する → 一貫性を保ちやすくなる
たとえば、次のようなメソッドを考えてみましょう。
public void CreateUser(string name, int age, string email, string address)
{
Console.WriteLine($"Name: {name}, Age: {age}, Email: {email}, Address: {address}");
}
このように引数が多いと、メソッドを呼び出すときに順番を間違えたり、必要なパラメータを忘れたりする可能性があります。
C#での実装方法(サンプルコード付き)
Collecting Parameterパターンを使うと、以下のように実装できます。
① パラメータを1つのクラスにまとめる
public class UserParameters
{
public string Name { get; set; }
public int Age { get; set; }
public string Email { get; set; }
public string Address { get; set; }
}
② メソッドの引数をこのクラスのインスタンスに変更
public void CreateUser(UserParameters parameters)
{
Console.WriteLine($"Name: {parameters.Name}, Age: {parameters.Age}, Email: {parameters.Email}, Address: {parameters.Address}");
}
③ 使い方
var userParams = new UserParameters
{
Name = "山田太郎",
Age = 30,
Email = "taro@example.com",
Address = "東京都"
};
CreateUser(userParams);
この方法なら、パラメータを簡単に追加でき、可読性も向上します。
Collecting Parameterパターンのメリット
このパターンを使うことで、以下のメリットがあります。
✅ 可読性の向上:メソッドの引数がシンプルになり、コードが読みやすくなる
✅ 拡張性の向上:新しいパラメータを追加する際にメソッドを変更しなくて済む
✅ 再利用性の向上:複数のメソッドで同じパラメータクラスを使い回せる
まとめ
- Collecting Parameterパターンは、複数の引数を1つのオブジェクトにまとめる設計パターン
- メソッドの引数が増えすぎる問題を解決し、コードの可読性を向上
- パラメータの追加・変更が容易になり、保守性が向上
- C#ではクラスを作成し、オブジェクトとして渡すことで実装可能
メソッドの引数が増えてきたら、Collecting Parameterパターン の導入を検討してみてください。
より柔軟で保守しやすいコードを書くことができるようになります。

