锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
娌℃湁鏂規硶浣?鍙湁鎶借薄鏂規硶, implements鎺ュ彛鏃跺欏繀欏誨疄鐜拌鎺ュ彛鎵瀹氫箟鐨勬墍鏈夌殑鎶借薄鏂規硶
鍙互implements澶氫釜鎺ュ彛 鐢?鍙烽棿闅?
鎶借薄綾?nbsp; Abstract
鍙互鏈変竴閮ㄤ喚瀹炵幇鏂規硶,涔熷彲浠ユ湁鎶借薄鏂規硶,
鍙彲浠xtends涓涓娊璞$被
浜岃呴兘鏄笉鍙疄渚嬪寲
鍋囪鎴戜滑闇瑕佸仛涓涓敮鎸佸縐嶆暟鎹簱鐨勯」鐩?浣嗘槸鏁版嵁搴撲箣闂存湁瀛樺湪鐨勫樊鍒?闅鵑亾鎴戜滑灝辮涓轟笉鍚岀殑鏁版嵁搴撳紑鍙戜笉鍚岀殑緋葷粺?絳旀鏄疦O!
鎴戜滑鍙互灝嗗縐嶆暟鎹簱鎵鏈夌殑鏂規硶鎶借薄鍑烘潵,鍐欐垚涓涓釜鐨勬柟娉曠粍鍚堝埌涓涓帴鍙d腑
鐒跺悗鏈夊灝戠鏁版嵁搴撴垜浠氨鍐欏嚑涓繖鏍風殑綾誨疄鐜拌繖涓帴鍙?/FONT>
鍏蜂綋濡備笅:
鎴戜滑棣栧厛鎶婃墍鏈夌殑鎶借薄鏂規硶緇勫悎鍒頒竴涓狣ataOperate鐨勬帴鍙d腑
public interface DataOperate{
Connection createConn(); /*寤虹珛榪炴帴*/
void closeConn(); /*鍏抽棴榪炴帴*/
ResultSet getRs(); /*榪斿洖緇撴灉闆?/
boolean exec(); /*鎵ц璇彞*/
boolean isClose(); /*鍏叡鏂規硶 鏌ョ湅榪炴帴鐘舵?/
}
瀹氫箟瀹屾帴鍙?鎴戜滑鍐嶅垱寤轟竴涓娊璞$被 鏉ュ疄鐜板叕鍏辯殑鏂規硶isClose()
public abstract class AbstractDataOperate implements DataOperate{
public Connection createConn(){
return null;
}
public void closeConn(){
}
public ResultSet getRs(){
return null;
}
public boolean exec(){
return fasle;
}
/**
*鍏叡鏂規硶鐨勫疄鐜?BR> **/
public boolean isClose(){
if(conn!=null)
return false;
else
return true;
}
}
鎺ヤ笅鏉ユ垜浠垎鍒啓3涓被OracleDataOperate,SqlServerDataOperate,MySqlDataOperate緇ф壙AbstractDatOperate鍏蜂綋瀹炵幇鏂規硶 榪欓噷涓嶅啀鍙欒堪
濂戒簡 鐜板湪鏈鍚庝竴姝?鍐欎竴涓伐鍘傛柟娉曟潵緇熶竴寰楀埌鏁版嵁搴撴搷浣滅被鐨勫疄渚?BR>public class DataOperateFactory{
public static final int OracleKey=1;
public static final int SqlServerKey=2;
public static final int MySqlKey=3;
public static int DbType =OracleKey;
private static DataOperate db;
public static DataOperate getInstance(){
if(db==null){
if(DbType==OracleKey)
db=new OracleDataOperate();
else if(DbType==SqlServerKey)
db=new SqlServerDataOperate();
else if(DbType==MySqlKey)
db=new MySqlDataOperate();
}
return db;
}
}
Ok 鍒版鎵鏈夊伐浣滈兘瀹屾垚 鏉ユ祴璇曞惂
public class MyTest{
public static void main(String args[]){
DataOperate db=AbstrctDataOperate.getInstance();
db.createConn();
}
}
鍦∕yTest綾婚噷鏍規湰娌℃湁鍑虹幇OracelDataOperate銆丮ysqlDataOperate絳夌殑褰卞瓙錛岃繖灝辨槸鎺ュ彛鐨勫▉鍔涖傚鎴風涓嶅繀閽堝OracelDataOperate絳夊啓涓嶅悓鐨勪唬鐮侊紝瀹冨彧鍏沖績DataOperate鍗沖彲錛屽叿浣撹鍙栭偅涓被鐨勯昏緫灝辯敱DataOperateFactory璐熻矗浜嗐?
濡傛灉榪樻湁鏂扮殑鏁版嵁搴撴坊鍔犵殑璇?鍙渶瑕佽薄OracleaDataOperate閭f牱 鍐嶅啓涓涓繖鏍風被 緇ф壙AbstractDataOperate綾?鐒跺悗鍦ㄥ伐鍘傜被閲孌ataOperateFactory鍔犱笂鐩稿簲鐨勪唬鐮佸嵆鍙?/FONT>