例如,当我创建一个对象时,如果它有一个逻辑路径的任务那么我看到自己做这样的事情,那么
public Class Link
{
public Link(String value)
{
callMethodA(value)
}
public void callMethodA(String data)
{
CallMethodB(doSomethingWithValue)
}
...
...
}
在这里,您可以看到,只要您实例化对象,您的任务就会自动完成。
我能看到的另一种方法是创建一个对象,它不通过构造函数链接,然后单独调用方法。
哪个是对的?为什么?
由于
答案 0 :(得分:1)
无论哪种方式,我们都可以实施。
推荐的方法是在构造函数中执行初始化事务等任务,其余部分可以通过使用其引用对象调用方法来实现。
答案 1 :(得分:0)
答案 2 :(得分:0)
构造函数应该执行使对象完成所需的所有内容。也就是说,如果没有调用方法callMethodA
,如果对象不完整,那么必须从构造函数本身调用callMethodA
。如果callMethodA是可选API,那么类Link
的用户可以在他想要的时候调用该方法。
答案 3 :(得分:0)
我更喜欢第二种方法。构造函数的工作是初始化类成员。任何改变对象状态的修改都需要由成员函数单独完成。
答案 4 :(得分:0)
只要创建的对象没有任何共同点,当前创建它们的方法就可以了。当创建的对象之间存在相似性时,Factory Method或Abstract Factory模式才有意义。它们可以帮助您隔离始终相同的零件和定义对象之间差异的移动零件。
答案 5 :(得分:0)
这取决于所涉及的业务逻辑。两种方式都很实用。如果您只想简单地启动特定于实例的数据,那么最好在构造函数方法本身中执行它,这更加逻辑和简单。它将节省不必要地显式调用其他方法。如果将数据实例化是基于某些商业条件,那么最好将主要功能放在单独的方法中,然后从构造函数中有条件地调用它。在这种情况下,这很容易管理。
答案 6 :(得分:0)
构造函数旨在使对象处于正确的初始状态。所以将它用于此目的。作为一般经验法则,只使用构造函数来设置属性。基本计算也可以。
我不建议调用非常耗时的方法,或者可能抛出异常的方法(比如调用web服务或访问文件)。
当您需要执行非常特殊的操作以使对象处于其初始状态时,请将构造函数设为私有并使用静态方法来创建对象。