在Java中,對象的創(chuàng)建和使用一直是開發(fā)人員關注的重點。有時候為了保證對象的唯一性或節(jié)省資源,我們需要控制對象的創(chuàng)建。這里就引出了兩個概念:單例和多例。
單例是指在整個應用程序中,某個類只存在一個實例。多例則是指每次創(chuàng)建出來的實例都是新的。
下面通過代碼示例來演示單例和多例的實現(xiàn)方法。
/* 單例模式 */ public class SingleInstance { private static SingleInstance instance; private SingleInstance() {} public static synchronized SingleInstance getInstance() { if(instance==null) { instance = new SingleInstance(); } return instance; } } /* 多例模式 */ public class MultiInstance { private static MultiInstance[] instances = new MultiInstance[10]; static { for(int i=0; i<10; i++) { instances[i] = new MultiInstance(); } } private MultiInstance() {} public static MultiInstance getInstance(int index) { return instances[index]; } }
在單例模式中,我們使用了靜態(tài)變量和同步方法實現(xiàn)單例的創(chuàng)建過程,確保了多線程情況下的唯一性。而在多例模式中,我們僅需要在類初始化時就創(chuàng)建好所有需要用到的實例,并在getInstance方法中返回指定下標的實例。
總之,單例和多例都是為了更好地控制對象創(chuàng)建和使用,根據(jù)需求選擇適合的模式。