我没有将多个参数传递给方法,而是将其封装到参数对象中。
note :简化为演示
对于这种情况,什么是更好的做法?
•创建一个类,命名为
InventorySaveArgs
? - 或 -
•创建嵌套类,并将名称设为SaveArgs
?
你还会解释为什么会选择其中一个吗?
[编辑] :该参数类型也将在其他程序集中使用。
附带问题:好奇,如果有一个模式名称可以将多个参数偶然封装到单个对象中。
MSDN上的 [更新] :Found Nested Type Usage Guidelines
InventorySaveArgs
应该可以从其他程序集中获得,因此我将使用常规类。
答案 0 :(得分:1)
我会将其命名为InventorySaveArgs
,以防万一您希望将该类型用于其他类型。如果您从头开始将其命名为InventorySaveArgs
,那么如果您需要重构,那么您将拥有一个在所有上下文中都有意义的名称。
答案 1 :(得分:1)
IIRC .NET设计指南非常明确 - 不应该有公共嵌套类型。
答案 2 :(得分:1)
我会选择第一个,创建一个外部类并将其命名为InventorySaveArgs。如果在公共方法中使用特定类,则不在类外部包含它的唯一参数是名称空间污染。
让内部类在C#中非常烦人,因为你必须不断地在类型名称前加上类的名称。如上所述,一旦公开,这就是减少命名空间污染的唯一动机。但是如果您的命名空间太大以至于InventorySaveArgs类太大了,那么您可能需要打破命名空间。
答案 3 :(得分:1)
将多个参数封装到我听说过的单个对象的唯一模式是refactoring pattern detailed by Martin Fowler