为了账号安全,请及时绑定邮箱和手机立即绑定

关于private的问题,请问如何定义private构造函数?

关于private的问题,请问如何定义private构造函数?

倚天杖 2021-05-02 09:05:45
如题,这种用法在实际应用中有什么用?工厂类又是如何实例化该类的
查看完整描述

2 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

单例模式的构造方法必须是private
public class Singleton {
private Singleton(){ }
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}
工厂模式:根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。

查看完整回答
反对 回复 2021-05-09
?
慕少森

TA贡献2019条经验 获得超9个赞

定义为private在实现Singleton时很有用,protected也可以
"工厂类又是如何实例化该类的"
只有给该类定一个成员函数来返回一个实例指针.然后工厂类调用该成员函数.实现实例化.

查看完整回答
反对 回复 2021-05-09
  • 2 回答
  • 0 关注
  • 262 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信