定义private构造函数

来源:百度知道 编辑:UC知道 时间:2024/07/02 19:44:03
如题,这种用法在实际应用中有什么用?
工厂类又是如何实例化该类的

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

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

我 谈谈我的看法 不一定对
首先我觉得private应该没什么意义吧
因为就不存在对构造函数的显式调用啊 一般构造函数都是隐式调用的啊
private 它一般是为了类的封装性 希望对外是透明的