如何禁止对象直接实例化
答案:2 悬赏:0 手机版
解决时间 2021-02-14 06:23
- 提问者网友:城市野鹿
- 2021-02-13 06:53
如何禁止对象直接实例化
最佳答案
- 五星知识达人网友:佘樂
- 2021-02-13 07:50
使用私有构造函数
class A
{
private A() {}
}
或者使用静态类
static class
{
...
}
还有抽象类:
abstract class A
{
...
}
class A
{
private A() {}
}
或者使用静态类
static class
{
...
}
还有抽象类:
abstract class A
{
...
}
全部回答
- 1楼网友:空山清雨
- 2021-02-13 09:20
1.真正禁止实例化的类,往往是作为工具类存在的。比如system.math:
public static class math
.net 2.0中增加了静态类的概念(static classes),所有的成员都声明为静态。
静态类禁止实例化的原因是没必要。工具类,你拿来用就是了。
2.一些设计模式
工厂模式中,有的写法是禁止产品类的实例化的。但是并不是说不实例化。而是将实例化的动作由工厂类完成。
享元模式也是如此。
单件模式,当你调用单例的时候,其实就是内部的一个判断是否需要实例化的过程。
设计模式中禁止直接实例化是为了某种原因,比如控制(单件,享元)。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯