这个问题与编程语言无关,但IMO是一个重要的问题。
如您所知,编写可重用代码是科学与艺术的结合,它是开发人员编写优秀代码所必需的关键技能。
假设我有一个包含多个函数的类:
class Example
def func1()
creates objectA
...
...
def func2()
creates objectB
...
...
def func3()
creates objectA
...
...
def func4()
creates objectC
...
...
在上述情况下,最好是:
一个。在函数1和3中创建对象A,所以一旦其他开发人员使用函数1或3,他们就不必费心去寻找如何将该对象作为参数发送(用于创建它的构造函数等... )。
通常,函数具有的参数越多,开发人员为开始使用它所需的工作量就越多......
OR
B中。将对象A作为必需参数放在函数1和3中是否更好,因此一旦开发人员想要使用这些函数,他/她将不得不在函数外部创建对象A,然后将其作为参数发送给功能
如果我编写了一个使用func1和func3的程序,那么这两个函数将重复创建两次对象(性能不佳)。
谁在这个可重复使用的Vs性能问题上获胜?
谢谢,
的Qwerty
答案 0 :(得分:0)
恕我直言,这取决于对象A是什么以及这些方法的作用。如果对象A是这些方法的私有实现细节,那么我不希望在参数列表中看到它们。
如果它必须是可交换的或可模拟的,那么你可以使它们成为一个参数,Example类的变量,或使用依赖注入之类的东西。
您始终可以创建一个新的私有方法来处理对象A的创建,以减少代码重复。然后,您可以根据需要添加一些缓存或延迟实例化以提高性能。
答案 1 :(得分:0)
我接受“usr1234567”评论作为正确答案。
谢谢,
的Qwerty