【发布时间】:2013-10-30 16:43:30
【问题描述】:
我正在尝试编写更好的代码。
我有一个函数处理两种不同类型的输入,该函数很长,并且两种类型之间的差异很小。 目前我是这样写的:
function(typeA inputs)
{
......
......
<lots of same code>
......
......
<small different code part>
}
function(typeB inputs)
{
......
......
<lots of same code>
......
......
<small different code part>
}
我想知道有没有更好的方法,我不需要放那么多重复的代码, 也许只写一个函数就可以切换类型...
typeA 和 typeB 是不同的基类。
目前 A 有 5 个项目,B 有 3 个。
【问题讨论】:
-
为什么不把相同的代码放在另一个函数中,然后从原始函数中调用呢?
-
两种类型都派生自同一个基类吗?
-
你也可以使用delegate来调用不同的代码部分
-
如果两种类型都派生自同一个基类,为什么不直接使用inheritance?
-
理想情况下,这两种类型将实现一个接口,该接口定义了它们之间的共同行为,或者至少定义了此方法所需的行为。
标签: c# oop polymorphism overloading