这种做法有何优点?构造函数设成private,然后通过静态方法来调用此private构造函数返回reference.
标题:
这种做法有何优点?构造函数设成private,然后通过静态方法来调用此private构造函数返回reference.
内容:
B.下述这种做法的优点何在?在外面直接调用构造函数会出什么问题吗?我现在的疑问就是直接调用构造函数会有什么隐患? 我感觉两种方式并没有本质的差别 ,最后都返回了对象的reference.
**做法**:将构造函数设置成private权限,然后通过helper方法来调用构造函数,例子如下。
本人认为:一般的方式需要new来创建对象,后面的方式不需要new 呵,简单些~不过这跟TIJ3中的意思不合,它好像还是说直接调用构造函数不好。
class Sundae {
private Sundae() {}
static Sundae makeASundae() {
return new Sundae();
}
}
public class IceCream {
public static void main(String[] args) {
//! Sundae x = new Sundae();
Sundae x = Sundae.makeASundae();
}
} ///:~
PS:问有的网友这个问题时,网友说构造函数是private权限当然不能在外调用,当然这个我可以直接修改其访问权限为public即可,这个并不是问题。
这种做法有何优点?构造函数设成private,然后通过静态方法来调用此private构造函数返回reference.
内容:
B.下述这种做法的优点何在?在外面直接调用构造函数会出什么问题吗?我现在的疑问就是直接调用构造函数会有什么隐患? 我感觉两种方式并没有本质的差别 ,最后都返回了对象的reference.
**做法**:将构造函数设置成private权限,然后通过helper方法来调用构造函数,例子如下。
本人认为:一般的方式需要new来创建对象,后面的方式不需要new 呵,简单些~不过这跟TIJ3中的意思不合,它好像还是说直接调用构造函数不好。
class Sundae {
private Sundae() {}
static Sundae makeASundae() {
return new Sundae();
}
}
public class IceCream {
public static void main(String[] args) {
//! Sundae x = new Sundae();
Sundae x = Sundae.makeASundae();
}
} ///:~
PS:问有的网友这个问题时,网友说构造函数是private权限当然不能在外调用,当然这个我可以直接修改其访问权限为public即可,这个并不是问题。
...全文
相关推荐
调用webservice,通过post传参读取返回的XML
**调用WebService**:在.NET环境中,可以通过`System.Web.Services.Protocols.SoapHttpClientProtocol`类或者更简单的Web Reference
c++禁止函数的传值调用的方法
在函数体内返回一个对象时,也会调用返回值类型的拷贝构造函数;d. 需要产生一个临时类对象时(类对象作为函数返回值会创建临时对象)。
c++中拷贝构造函数的参数类型必须是引用
"C++中的拷贝构造函数参数必须为引用的原因主要涉及到函数调用时的值传递机制以及防止无限递归的问题。"在C++编程语言中,拷贝构造函数是一个特殊的构造函数,用于创建一个对象的新副本,通常在需要复
C生成静态库给C++调用出现undefined reference to ...解决方案_cpp
在C++程序中调用C编译的静态库时,可能会遇到“undefined reference to ...”错误,这通常意味着链接器无法找到对应的函数定义。
CPP杂记——移动构造函数中需要注意的问题
这样,像`std::vector::push_back`这样的函数只需要调用一次构造函数即可完成操作。3.


Java SE
