假设我正在创建一个MATH类,需要提供一个处理两个数字的方法。 [
我没有为每个可能的操作提供传统的方法,而是提供了一个方法eval:float eval(ArgObj);
其中ArgObj
是一个可以容纳两个数字的对象和一个运算符。因此,现在使用单一方法,我可以进行多项操作。
这种设计有哪些缺点?
两个缺点是维护和文档,因为eval能够处理更多操作。
我在这里错过了哪些其他缺点?
更新: 我想弄清楚的是大型单片方法的负面影响,上面的例子只是假设另一个类似的例子就是像
这样的方法 float doSomething(int basedOn)
doSomething可以做一堆操作。
答案 0 :(得分:1)
阅读代码应该是一种愉快的体验,知道一种方法的作用应该是显而易见的。
您是否也希望将英语缩减为10个字?当然不是......
向熟悉且广受欢迎的API学习,确保您的API易于学习,易于使用且难以滥用。
我建议doSomething
不要接近。当您需要不同的操作时会发生什么,您是否调用了新方法doSomething2
?希望你不认为这是一个可行的选择...