什么是一个好的设计,以避免具有大量参数的方法?

Pit*_*all 1 .net c# treeview drag-and-drop

我有一点设计问题.我正在做的是在C#桌面应用程序中拖放.我正在使用.NET树视图控件和第三方网格(不重要).我在多个地方使用文件系统的拖放操作,所以我创建了一个静态类来处理这个问题.现在这不仅仅是一个普通的文件系统.树视图是目录的表示,网格具有文件.复杂的部分是存在逻辑文件系统,因此所有这些都存储在数据库中.我只是解释所有这些,因为我想解释为什么我有问题.因为此时我正在处理许多对象,所以我的所有静态方法都有大量参数.我所有的静态方法几乎都使用相同的参数而且我能做些什么来避免这种情况?

Geo*_*ton 6

通过将这些字段封装在公共对象中来减少参数,例如

而不是:

void DoSomething(string first, string middle, string last);
Run Code Online (Sandbox Code Playgroud)

你可以有:

void DoSomething(Name name);
Run Code Online (Sandbox Code Playgroud)

姓名可以表示的地方,

public class Name
{
   string First {get; set;}
   string Middle {get; set;}
   string Last {get; set;}
}
Run Code Online (Sandbox Code Playgroud)