靜態(tài)工廠:
在Java中,構(gòu)造函數(shù)的訪問(wèn)級(jí)別通常是public, 它提供了一個(gè)構(gòu)造該類(lèi)對(duì)象的接口??墒悄阒恢溃褬?gòu)造函數(shù)的級(jí)別設(shè)為private, 有一些特別用處。
Java code?
public class Handler {
/**當(dāng)前類(lèi)唯一實(shí)例**/
private final static Handler INSTANCE = new Handler();
/**默認(rèn)無(wú)參構(gòu)造器**/
private Handler() {
}
/**
* 用于獲取Handler實(shí)例
* @return 返回Handler實(shí)例
*/
public static Handler getInstance()
{
return INSTANCE;
}
}
上面的makeShape()方法可以返回Shpe的子類(lèi)對(duì)象如下假定:retangle和Circle是Shape的子類(lèi)
Java code?
一、構(gòu)造器;
二、靜態(tài)工廠方法;
基本細(xì)想:通過(guò)類(lèi)中的靜態(tài)方法返回對(duì)象。(如果構(gòu)造方法私有,稱(chēng)做單例模式)
三、通過(guò)Class類(lèi);
基本細(xì)想:實(shí)例化無(wú)參構(gòu)造的類(lèi),先通過(guò)forName()方法實(shí)例化Class對(duì)象(即反射操作),然后用Class類(lèi)中的
newInstance()方法;實(shí)例化帶參數(shù)構(gòu)造的類(lèi),需要使用Class類(lèi)中的getConstructors()方法獲取所有的構(gòu)造,然后同上操
作。
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥(niǎo). 頁(yè)面生成時(shí)間:2.681秒