[问题] 实作内容相同但很可能改变的function

楼主: BigLoser (大鲁蛇)   2014-08-20 16:03:00
大家好,我就直接举例了
public int CountA(int A)
{
return A*5 + 0;
}
public int CountB(int B)
{
return B*5 +1;
}
public int CountC(int C)
{
return C*5 +2;
}
我有多个function做的事情是差不多的,只有些微差别,
如例子中的 +0 +1 +2,
所以我可以把它整合成一个function,用switch来判断他要+多少,
可是问题来了,如果未来这些function可能又会出一些特别的变化,
例如
public int CountA(int A)
{
return A*A*A+A+1;
}
会使得A不适合跟其他人整合成在一起,
请问这种状况该怎么处理比较好呢?
谢谢
作者: uranusjr (←這人是超級笨蛋)   2014-08-20 16:28:00
请用继承, 不要用 switch
作者: iterator (rotareti)   2014-08-20 16:35:00
应该把 method 中类似的东西抽出, 成为独立的 method视这些所谓"差不多,但不同"的片段, 彼此间的关系去决定要用 switch, Func<>, 或根本不该绑在一起不同类的东西,硬要塞个switch,只会造成程式逻辑混乱可以从这个方面去想:你要做的事情符不符合method名字?method的名字是否足以描述里面要做的事情.
作者: ssccg (23)   2014-08-20 20:31:00
要不要合并不是只看实作内容,要看代表的逻辑和用途你的举例来说,你后面的问题来了根本不是个问题作法改了当然就呼叫新的function,跟原本的关系在哪?
楼主: BigLoser (大鲁蛇)   2014-08-20 21:06:00
公式大部分是共用的 只有一小部分不同*相同

Links booklink

Contact Us: admin [ a t ] ucptt.com