1 这是个什么设计模式,是单例模式吗?感觉有点像,但是又不像 
是,因为私有构造器,并且有个static的方法用来生成该类的对象,并且该类只能产生一个对象2 构造函数是私有方法,但是在声明成员的时候就调用了这个方法,这有什么特殊的含义吗? 
这个就是单例的原理,因为类唯一对象是对应类的。3 这个类是在一个软件的开始的时候,用于涉及文件的操作用的,其中有些方法前有synchronized, 能说说大概的用处吗? 
这个就是多线程了 ,多线程的话,对该类对象的操作时候有加锁等操作,起排斥作用
单例还有对应多线程的表达方式,有兴趣可以google

解决方案 »

  1.   

    synchronized就是操作文件时,防止多线程一起修改删除文件产生异常,所以要加锁对文件进行操作
      

  2.   

    再问一下,这个也是单例模式,
    1 这两个有什么不同呢?
    2 调用的顺序应该是什么呢?我的意思是,YAWLEditor的构造函数,YAWLEditor.getInstance(), YAWLEditor.main(),ArchivingThread的构造函数,还有ArchivingThread.getInstance()的顺序是什么?
    自己加了断点,试了一下,顺序好像是YAWLEditor.main(), YAWLEditor.getInstance(),ArchivingThread的构造,ArchivingThread.getInstance()
    帮忙确认一下,谢谢3 static这个关键,说明的是在实例出现前,就可以调用的函数,就可以使用的变量,是吗?是不是也像C++那样,多个实例共用一个static的变量?public class YAWLEditor extends JFrame implements SpecificationFileModelListener {  private static YAWLEditor INSTANCE;  private YAWLEditor() {
        ArchivingThread.getInstance().start();
      }  public static YAWLEditor getInstance() {
        if (INSTANCE == null) {
          INSTANCE = new YAWLEditor();
        }
        return INSTANCE;
      }  public static void main(String[] args) {    getInstance();
      }
      

  3.   

    单例模式
    私有构造函数是为了保障其他地方无法构建该类的对象
    synchronized 是为了防止多线程时候该方法或这代码快被同时调用
      

  4.   

    1.这2个分别是单例模式的2种方式,前者是饿汉模式,类加载时就将INSTANCE时初始化了。后者是懒汉模式,获取单例对象时进行判断,如果INSTANCE为空才初始化。
    2.懒得试了。
    3.大概就是找个意思
      

  5.   

    构造函数私有,不让你在外面随意的new对象;只给你暴露静态的获取实例的方法它有个学名,就叫做singleton
      

  6.   

    上面声明的返回的实例对象是static类型的,构造方法私有,外部就不能利用它再创建任何对象,而static类型的变量在类加载的时候就初始化生成了,而且只有一个值,所以说这个是“单例模式”的另外一种实现模式,原理一样的。