现在程序代码是这样的,用的是单例模式
可是选择单例模式有何优势,感觉单例模式做的事情,静态方法都能做??
请大吓指教一下public class LogWriter {
static private Logger logger = Logger
.getLogger(SqlBenchSessionFactory.class); private static LogWriter instance; /**
 * 缺省构造函数
 */
private LogWriter() throws RemoteException { } synchronized public static LogWriter instance() throws RemoteException {
if (instance == null) {
instance = new LogWriter();
}
return instance;
} // 获取RMI服务,写入日志到数据库
public void writeLog(SqlLog log) {
 }}

解决方案 »

  1.   

    Java 技术交流群!入群先看公约!本群公约:互助、互勉、共同进步!惑则问、知则答、不知则表示关注。帮助新手、细心回答。 
    同意上述公约者·申请加入!  
    QQ群号:25922618(一群)-----人员快满
    QQ群号:17615698(二群)-----最近新群
      

  2.   

    单例的话,只能用这个类的某个方法来得到它的实例。
    静态的话,你可以调用它的构造方法来得到它的实例。
    按你这个程序,用静态的话没必要用这个synchronized 关键字来保持同步吧!
    纯属个人见解!有错请纠正
      

  3.   


    "静态的话没必要用这个synchronized "不是很赞同啊.
    在多线程并发访问的情况下 静态 并不可能保证线程安全啊.
      

  4.   

    单例:分两种..一种是懒汉模式,一种是饿汉模式,你上面的那种就是懒汉模式,只有在用的时候才去实例化..但是不用加synchronized ,
    饿汉模式就是静态初始化.就是一开始就实例化.不管要不要用.....至于什么时候用什么...自己选吧..呵呵.