在我看来,我们应该能够声明某种方法。 “构造函数方法”或“构造函数助手”的效果。
这些方法只能从构造函数中调用。我可以看到这样做的几个原因:
首先,我喜欢我的建造者要干净。如果我必须将很多逻辑转储到构造函数中,我想组织它。但是,我组织该逻辑的方法可能不是我应该在构造函数之外调用的方法。我希望能够声明仅构造函数的方法。
其次,类似地,readonly成员变量只能在构造函数中初始化。例如,即使从构造函数中调用该方法,也不能初始化方法中的只读变量。我希望能够声明方法'constructor-only',然后我就可以在其中初始化只读成员变量。
最后,虽然我可以看到'如果您的构造函数足够复杂而需要缩减为多个方法调用的论点,那么你在它们中做了太多',那里有多个构造函数可能需要与另一个完全相同的逻辑。如果我有三个构造函数都需要初始化一个只读成员变量,我应该将该初始化逻辑拉入一个单独的方法。虽然我可以设置这样一个返回初始化值的方法,而不是实际进行初始化,但我仍然希望能够将这样的方法声明为'constructor-only',因为它可能不应该在任何地方使用其他
编辑:把它变成一个问题:是否存在我不了解这个想法的问题,是不必要的,还是这实际上是一个有用的功能?
由于
答案 0 :(得分:2)
就像你在最后一点所说的那样。在构造函数中有很多逻辑是不正确的。至少对于我来说。您应该在其他地方执行此操作,或者根本不执行此操作。有点像创建单独的类来执行此操作,然后将此类作为参数传递给constuctor。
如果你想要推广构造函数调用,你可以链接不同的构造函数,所以当调用一个时,另一个调用也与第一个中的单独逻辑一起调用。然后其中一些构造函数可以是私有的,因此不能从外部调用它们。