为参数对象创建常规类或内部类?

时间:2009-03-27 14:44:44

标签: c# .net naming-conventions inner-classes parameter-object

我没有将多个参数传递给方法,而是将其封装到参数对象中。

note :简化为演示
alt text

对于这种情况,什么是更好的做法?

  

•创建一个类,命名InventorySaveArgs?    - 或 -
  •创建嵌套类,并将名称设为SaveArgs

你还会解释为什么会选择其中一个吗?

[编辑] :该参数类型也将在其他程序集中使用。

附带问题:好奇,如果有一个模式名称可以将多个参数偶然封装到单个对象中。

MSDN上的

[更新] Found Nested Type Usage Guidelines
InventorySaveArgs应该可以从其他程序集中获得,因此我将使用常规类。

4 个答案:

答案 0 :(得分:1)

我会将其命名为InventorySaveArgs,以防万一您希望将该类型用于其他类型。如果您从头开始将其命名为InventorySaveArgs,那么如果您需要重构,那么您将拥有一个在所有上下文中都有意义的名称。

答案 1 :(得分:1)

IIRC .NET设计指南非常明确 - 不应该有公共嵌套类型。

答案 2 :(得分:1)

我会选择第一个,创建一个外部类并将其命名为InventorySaveArgs。如果在公共方法中使用特定类,则不在类外部包含它的唯一参数是名称空间污染。

让内部类在C#中非常烦人,因为你必须不断地在类型名称前加上类的名称。如上所述,一旦公开,这就是减少命名空间污染的唯一动机。但是如果您的命名空间太大以至于InventorySaveArgs类太大了,那么您可能需要打破命名空间。

答案 3 :(得分:1)

将多个参数封装到我听说过的单个对象的唯一模式是refactoring pattern detailed by Martin Fowler