【发布时间】:2011-11-01 23:25:15
【问题描述】:
在我们的代码库中
public ActionResult Copy(string id, string targetId)
{
//lot of similar code
Copy(sourcePageRef, destinationPageRef);
//lot of similar code
}
和
public ActionResult Move(string id, string targetId)
{
//lot of similar code
Move(sourcePageRef, destinationPageRef);
//lot of similar code
}
问题是,Copy 和 Move 有不同的签名:
PageRef Copy(PageRef, PageRef)
和
void Move(PageRef, PageRef)
如何重构这些方法以避免重复? 谢谢
【问题讨论】:
-
如果您可以丢弃复制操作的结果,这通常是您使用外观模式的地方。使用相同的签名在您的外观中实施复制和移动,然后您可以反射性地调用它们或您喜欢的任何方式。否则,我会先将通用代码移到辅助方法中。
标签: c# .net refactoring