缩短"长"参数列表

Vla*_*lav 1 refactoring

我正在重构我的一个项目 - 购物车.我的代码紧密耦合的一个区域是"Viewer"类 - 为了生成供用户查看的信息,它通常需要两个或多个以下对象的组合:

  • 商店目录.
  • 客户的订单.
  • 客户的邮寄信息.

出于各种原因,我无法真正分解显示方法.

Martin Fowler的Refactoring将此视为"长参数列表"的气味.这里的相关重构是"引入参数对象".但是,我对此犹豫不决,因为这样做会将松散相关的数据耦合在一起.它也会让我锁定这三个对象之间非常狭窄的一对一关系 - 虽然这对我的应用程序来说就像现在一样,但它没有现实意义.(由于只有一个商店目录,因此可能存在许多"客户邮件信息"对象,并且每个对象可能与许多"客户订单"对象相关).

有没有人有这个优雅的解决方案?

Eri*_*ler 7

三个参数的参数列表不需要重构.当你达到8或10个参数时开始担心.

  • 当没有实际问题时,要小心尝试做出"更优雅"的东西,因为过度工程是最有可能的结果. (5认同)