从另一个调用一个构造函数有什么利弊吗?

Mumair

考虑以下从另一个调用一个构造函数的情况:

public Pet(int x) {
    this.x = x; // “this” means this object
}
public Pet (int x, String y) {
    this(x);    // calls constructor public Pet(int id)
    this.y = y; // ”this” means this object
}
.
.
.
public Pet (params,[...]) { // [...] shows the number of params
    this(params,[...])
    //...
}

并分离重载的构造函数体。

public Pet(int x, int y, int z, int a, int b, [...]) {
    this.x = x;
    this.y = y;
    this.z = z;
    this.a = a;
    this.b = b;
    //[...] and so on 
}

用更少的代码行就可以实现这个显而易见的目标。(根据上述情况我的问题)

从另一个调用一个构造函数是好事还是不好的做法?我们开发企业应用程序时的利弊是什么?如果我们考虑性能,内存等方面的问题

在考虑某项东西在某些情况下是否性能良好和/或最佳时,您应该始终遵循优化规则

除此之外,还有一些明显的利弊。

这种方法的优点是重复代码少添加了每个构造函数后,调用super会花费更长的时间,但是在this.x = x任何地方都没有重复操作

这种方法的缺点是,当您寻找工厂或构建器时,会公开更多构造该对象的方法,这会降低多构造器方法的可见性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从另一个构造函数调用构造函数

你为什么要允许从另一个调用一个构造函数?

有什么方法可以通过另一个函数参数调用一个函数吗?

复制构造函数不能调用另一个复制构造函数吗?

C ++-从另一个类构造函数调用一个类构造函数

从另一个构造函数中调用带有共享对象的构造函数init

如何从另一个调用空的构造函数?

另一个内的Java调用构造函数

我可以在C ++中从另一个构造函数调用构造函数(构造函数链接)吗?

从另一个调用一个构造函数

从另一个调用一个构造函数,Java重载

是否可以在另一个类中调用一个类的构造函数?

如何在Java中从另一个调用一个构造函数?

在Java中从另一个调用一个构造函数

在另一个类中调用一个类的构造函数

返回另一个类的成员的属性而不是在构造函数中设置该属性有什么好处吗?

ajax调用完成后有什么办法可以调用另一个函数吗?

如何从没有构造函数的另一个类中调用方法

可以在类的构造函数内部使用“ new”来调用Java中的另一个构造函数吗?

我可以从 C# 中另一个类的构造函数调用构造函数吗?

在对另一个构造函数的调用中调用构造函数

在R中的另一个函数中定义和调用一个函数有什么好处?

这里的print()有什么作用?(打印一个调用另一个打印函数的函数)

我可以调用具有另一个函数作用域的函数吗?

为什么一个函数在调用另一个异步函数时是异步的?

Java从另一个构造函数调用构造函数而没有立即具有参数

为什么从另一个构造函数内部调用的C ++构造函数不会修改类变量?

当按值传递给函数并按值传递给另一个构造函数时,构造函数调用为什么会有区别?

如何在 JavaScript 中从另一个构造函数调用一个构造函数?