锘??xml version="1.0" encoding="utf-8" standalone="yes"?>最新亚洲人成无码网www电影,亚洲人成77777在线播放网站不卡,亚洲国产高清视频在线观看http://m.tkk7.com/jorwen/category/7241.htmlzh-cnWed, 28 Feb 2007 11:51:45 GMTWed, 28 Feb 2007 11:51:45 GMT60JAVA鎿嶄綔鏁版嵁搴撴柟寮忎笌璁捐妯″紡搴旂敤http://m.tkk7.com/jorwen/articles/29429.html鏂逛匠鐜?/dc:creator>鏂逛匠鐜?/author>Wed, 01 Feb 2006 04:44:00 GMThttp://m.tkk7.com/jorwen/articles/29429.htmlhttp://m.tkk7.com/jorwen/comments/29429.htmlhttp://m.tkk7.com/jorwen/articles/29429.html#Feedback0http://m.tkk7.com/jorwen/comments/commentRss/29429.htmlhttp://m.tkk7.com/jorwen/services/trackbacks/29429.html1.   鍦ㄤ笟鍔″眰浣跨敤JDBC鐩存帴鎿嶄綔鏁版嵁搴擄紞鏈綆鍗曪紝鏈鐩存帴鐨勬搷浣?/FONT>
 
1錛夋暟鎹簱url,username,password鍐欐鍦ㄤ唬鐮佷腑
    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 
    String url="jdbc:oracle:thin:@localhost:1521:orcl"; 
    String user="scott"; 
    String password="tiger"; 
    Connection conn= DriverManager.getConnection(url,user,password); 
    Statement stmt=conn.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
    String sql="select * from test"; 
    ResultSet rs=stmt.executeQuery(sql);
 
2錛夐噰鐢‵acade鍜孋ommand妯″紡錛屼嬌鐢―BUtil綾誨皝瑁匤DBC鎿嶄綔錛?/FONT>
      鏁版嵁搴搖rl,username,password鍙互鏀懼湪閰嶇疆鏂囦歡涓紙濡倄ml,properties,ini絳夛級銆?/FONT>
      榪欑鏂規硶鍦ㄥ皬紼嬪簭涓簲鐢ㄨ緝澶氥?/FONT>
 
2.DAO(Data Accessor Object)妯″紡錛嶆澗鑰﹀悎鐨勫紑濮?/FONT>
DAO = data + accessor + domain object
 
 渚嬪User綾伙紞domain object (javabean)
UserDAO綾伙紞accessor 錛屾彁渚涚殑鏂規硶getUser(int id)錛宻ave(User user)鍐呭寘鍚簡JDBC鎿嶄綔
鍦ㄤ笟鍔¢昏緫涓嬌鐢ㄨ繖涓や釜綾繪潵瀹屾垚鏁版嵁鎿嶄綔銆?/FONT>
 
浣跨敤Factory妯″紡鍙互鏂逛究涓嶅悓鏁版嵁搴撹繛鎺ヤ箣闂寸殑縐繪銆?/FONT>
 
3.鏁版嵁搴撹祫婧愮鐞嗘ā寮?/FONT>
3.1 鏁版嵁搴撹繛鎺ユ睜鎶鏈?/FONT>
璧勬簮閲嶇敤錛岄伩鍏嶉綣佸垱寤猴紝閲婃斁榪炴帴寮曡搗澶уぇ閲忔ц兘寮閿錛?/FONT>
鏇村揩鐨勭郴緇熷搷搴旈熷害錛?/FONT>
 
閫氳繃瀹炵幇JDBC鐨勯儴鍒嗚祫婧愬璞℃帴鍙? Connection, Statement, ResultSet )錛屽彲浠ヤ嬌鐢―ecorator璁捐妯″紡鍒嗗埆浜х敓涓夌閫昏緫璧勬簮瀵硅薄: PooledConnection, PooledStatement鍜?PooledResultSet銆?/FONT>
 
 
涓涓渶綆鍗曞湴鏁版嵁搴撹繛鎺ユ睜瀹炵幇錛?/FONT>
public class ConnectionPool {
 
       private static Vector pools;
       private final int POOL_MAXSIZE = 25;
       /**
        * 鑾峰彇鏁版嵁搴撹繛鎺?/SPAN>
        * 濡傛灉褰撳墠姹犱腑鏈夊彲鐢ㄨ繛鎺ワ紝鍒欏皢姹犱腑鏈鍚庝竴涓繑鍥烇紱鑻ユ病鏈夛紝鍒欏垱寤轟竴涓柊鐨勮繑鍥?/SPAN>
        */
       public synchronized Connection getConnection() {
              Connection conn = null;
              if (pools == null) {
                     pools = new Vector();
              }
 
              if (pools.isEmpty()) {
                     conn = createConnection();
              } else {
                     int last_idx = pools.size() - 1;
                     conn = (Connection) pools.get(last_idx);
                     pools.remove(last_idx);
              }
 
              return conn;
       }
 
       /**
        * 灝嗕嬌鐢ㄥ畬姣曠殑鏁版嵁搴撹繛鎺ユ斁鍥炴睜涓?/SPAN>
        * 鑻ユ睜涓繛鎺ュ凡緇忚秴榪囬槇鍊鹼紝鍒欏叧闂榪炴帴錛涘惁鍒欐斁鍥炴睜涓笅嬈″啀浣跨敤
        */
       public synchronized void releaseConnection(Connection conn) {
              if (pools.size() >= POOL_MAXSIZE)
                     try {
                            conn.close();
                     } catch (SQLException e) {
                            // TODO鑷姩鐢熸垚 catch 鍧?/SPAN>
                            e.printStackTrace();
                     } else
                     pools.add(conn);
       }
 
       public static Connection createConnection() {
              Connection conn = null;
              try {
                     Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
                     String url = "jdbc:oracle:thin:@localhost:1521:orcl";
                     String user = "scott";
                     String password = "tiger";
                     conn = DriverManager.getConnection(url, user, password);
              } catch (InstantiationException e) {
                     // TODO鑷姩鐢熸垚 catch 鍧?/SPAN>
                     e.printStackTrace();
              } catch (IllegalAccessException e) {
                     // TODO鑷姩鐢熸垚 catch 鍧?/SPAN>
                     e.printStackTrace();
              } catch (ClassNotFoundException e) {
                     // TODO鑷姩鐢熸垚 catch 鍧?/SPAN>
                     e.printStackTrace();
              } catch (SQLException e) {
                     // TODO鑷姩鐢熸垚 catch 鍧?/SPAN>
                     e.printStackTrace();
              }
              return conn;
       }
}
 
娉ㄦ剰錛氬埄鐢╣etConnection()鏂規硶寰楀埌鐨凜onnection錛岀▼搴忓憳寰堜範鎯湴璋冪敤conn.close()鏂規硶鍏抽棴浜嗘暟鎹簱榪炴帴錛岄偅涔堜笂榪扮殑鏁版嵁搴撹繛鎺ユ満鍒朵究褰㈠悓铏氳銆?SPAN style="BACKGROUND-COLOR: #ffffff">鍦ㄨ皟鐢╟onn.close()鏂規硶鏂規硶鏃跺浣曡皟鐢╮eleaseConnection()鏂規硶錛熻繖鏄叧閿傝繖閲岋紝鎴戜滑浣跨敤Proxy妯″紡鍜宩ava鍙嶅皠鏈哄埗銆?/SPAN>
 
public synchronized Connection getConnection() {
              Connection conn = null;
              if (pools == null) {
                     pools = new Vector();
              }
 
              if (pools.isEmpty()) {
                     conn = createConnection();
              } else {
                     int last_idx = pools.size() - 1;
                     conn = (Connection) pools.get(last_idx);
                     pools.remove(last_idx);
              }
       
        ConnectionHandler handler=new ConnectionHandler(this);
              return handler.bind(con);
       }
 
public class ConnectionHandler implements InvocationHandler {
     private Connection conn;
     private ConnectionPool pool;
    
     public ConnectionHandler(ConnectionPool pool){
            this.pool=pool;
     }
    
     /**
      * 灝嗗姩鎬佷唬鐞嗙粦瀹氬埌鎸囧畾Connection
      * @param conn
      * @return
      */
     public Connection bind(Connection conn){
            this.conn=conn;
Connection proxyConn=(Connection)Proxy.newProxyInstance(
conn.getClass().getClassLoader(), conn.getClass().getInterfaces(),this);
          return proxyConn;
     }
    
       /* 錛堥潪 Javadoc錛?/SPAN>
        * @see java.lang.reflect.InvocationHandler#invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
        */
       public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
              // TODO鑷姩鐢熸垚鏂規硶瀛樻牴
              Object obj=null;
              if("close".equals(method.getName())){
                     this.pool.releaseConnection(this.conn);
              }
              else{
                     obj=method.invoke(this.conn, args);
              }
             
              return obj;
       }
}
 
      鍦ㄥ疄闄呴」鐩腑錛屽茍涓嶉渶瑕佷綘鏉ヤ粠澶村紑濮嬫潵璁捐鏁版嵁搴撹繛鎺ユ睜鏈哄埗錛岀幇鍦ㄦ垚鐔熺殑寮婧愰」鐩紝濡侰3P0,dbcp,Proxool絳夋彁渚涗簡鑹ソ鐨勫疄鐜般備竴鑸帹鑽愪嬌鐢ˋpache dbcp錛屽熀鏈嬌鐢ㄥ疄渚嬶細
DataSource ds = null;
   try{
     Context initCtx = new InitialContext();
     Context envCtx = (Context) initCtx.lookup("java:comp/env");
     ds = (DataSource)envCtx.lookup("jdbc/myoracle");
        if(ds!=null){
                out.println("Connection is OK!");
                Connection cn=ds.getConnection();
                if(cn!=null){
                        out.println("cn is Ok!");
                Statement stmt = cn.createStatement();
                 ResultSet rst = stmt.executeQuery("select * from BOOK");
                out.println("<p>rst is Ok!" + rst.next());
                while(rst.next()){
                        out.println("<P>BOOK_CODE:" + rst.getString(1));
                  }
                        cn.close();
                }else{
                        out.println("rst Fail!");
                }
        }
        else
                out.println("Fail!");
           }catch(Exception ne){ out.println(ne);
         }

3.2 Statement Pool
鏅氶緙栬瘧浠g爜錛?/FONT>
String strSQL=鈥漵elect name from items where id=?鈥?
PreparedStatement ps=conn.prepareStatement(strSQL);
ps.setString(1, 鈥?鈥?;
ResultSet rs=ps.executeQuery();
 
浣嗘槸PreparedStatement 鏄笌鐗瑰畾鐨凜onnection鍏寵仈鐨勶紝涓鏃onnection鍏抽棴錛屽垯鐩稿叧鐨凱reparedStatement 涔熶細鍏抽棴銆?/FONT>
涓轟簡鍒涘緩PreparedStatement 緙撳啿姹狅紝鍙互鍦╥nvoke鏂規硶涓氳繃sql璇彞鍒ゆ柇姹犱腑榪樻湁娌℃湁鍙敤瀹炰緥銆?/FONT>
 
4. 鎸佷箙灞傝璁′笌O/R mapping 鎶鏈?/FONT>
1錛?nbsp;Hernate錛氶傚悎瀵規柊浜у搧鐨勫紑鍙戯紝榪涜灝侀棴鍖?SPAN style="BACKGROUND-COLOR: #ffffff">鐨勮璁?
Hibernate 2003騫磋Jboss鎺ョ錛?SPAN style="FONT-SIZE: 10pt">閫氳繃鎶?/SPAN>java pojo瀵硅薄鏄犲皠鍒版暟鎹簱鐨?/SPAN>table涓紝閲囩敤浜?/SPAN>xml/javareflection鎶鏈瓑銆?/SPAN>3.0鎻愪緵浜嗗瀛樺偍榪囩▼鍜屾墜鍐?/SPAN>sql鐨勬敮鎸侊紝鏈韓鎻愪緵浜?/SPAN>hql璇█銆?/SPAN>
寮鍙戞墍闇瑕佺殑鏂囦歡錛?/FONT>
hibernate閰嶇疆鏂囦歡錛?/SPAN> hibernate.cfg.xml 鎴?/SPAN> hibernate.properties
hibernate 鏄犲皠鏂囦歡錛?/SPAN> a.hbm.xml
pojo綾繪簮鏂囦歡錛?/SPAN> a.java銆銆
 
瀵煎嚭琛ㄤ笌琛ㄤ箣闂寸殑鍏崇郴錛?/FONT>
a. 浠?/SPAN>java瀵硅薄鍒?/SPAN>hbm鏂囦歡錛?/SPAN>xdoclet
b. 浠?/SPAN>hbm鏂囦歡鍒?/SPAN>java瀵硅薄錛?/SPAN>hibernate extension
c. 浠庢暟鎹簱鍒?/SPAN>hbm鏂囦歡錛?/SPAN>middlegen
d. 浠?/SPAN>hbm鏂囦歡鍒版暟鎹簱錛?/SPAN>SchemaExport
 
2錛?SPAN style="BACKGROUND-COLOR: #ffffff">Iatis 錛氶傚悎瀵歸仐鐣欑郴緇熺殑鏀歸犲拰瀵規棦鏈夋暟鎹簱鐨勫鐢紝鏈夊緢寮虹殑鐏墊椿鎬?3錛?Apache OJB錛氫紭鍔垮湪浜庡鏍囧噯鐨勫叏闈㈡敮鎸?4錛塃JB錛氶傚悎闆嗙兢鏈嶅姟鍣紝鍏舵ц兘涔熶笉璞℃煇浜涗漢鎵璇熺梾鐨勯偅涔堝樊鍔?5錛?JDO (java data object)
璁劇疆涓涓狿roperties瀵硅薄錛屼粠鑰岃幏鍙栦竴涓狫DO鐨凱ersistenceManagerFactory錛堢浉褰撲簬JDBC榪炴帴姹犱腑鐨凞ataSource錛夛紝榪涜岃幏寰椾竴涓狿ersistenceManager瀵硅薄錛堢浉褰撲簬JDBC涓殑Connection瀵硅薄錛夛紝涔嬪悗錛屼綘鍙互鐢ㄨ繖涓狿ersistenceManager瀵硅薄鏉ュ鍔犮佹洿鏂般佸垹闄ゃ佹煡璇㈠璞°?/FONT>
JDOQL鏄疛DO鐨勬煡璇㈣璦錛涘畠鏈夌偣璞QL錛屼絾鍗存槸渚濈収Java鐨勮娉曠殑銆?/FONT>
 
5. 鍩轟簬寮婧愭鏋剁殑Struts+Spring+Hibernate瀹炵幇鏂規
紺轟緥錛氳繖鏄竴涓?/SPAN>3灞傛灦鏋勭殑web 紼嬪簭錛岄氳繃涓涓?/SPAN>Action 鏉ヨ皟鐢ㄤ笟鍔′唬鐞嗭紝鍐嶉氳繃瀹冩潵鍥炶皟 DAO綾匯備笅闈㈢殑嫻佺▼鍥捐〃紺轟簡MyUsers鏄浣曞伐浣滅殑銆傛暟瀛楄〃鏄庝簡嫻佺▼鐨勫厛鍚庨『搴忥紝浠?/SPAN>web灞?/SPAN>(UserAction)鍒頒腑闂村眰(UserManager)錛屽啀鍒版暟鎹眰(UserDAO)錛岀劧鍚庤繑鍥炪?/SPAN>
Spring鏄?/SPAN>AOP, UserManager鍜?/SPAN>UserDAO閮芥槸鎺ュ彛.
1)       web灞?/SPAN>(UserAction) 錛氳皟鐢ㄤ腑闂村眰鐨勬帴鍙f柟娉曪紝灝?/SPAN>UserManager浣滀負灞炴ф敞鍏ャ?/SPAN>
             閲囩敤嫻佽鐨凷truts妗嗘灦錛岃櫧鐒舵湁寰堝浜轟笉灞戜竴欏撅紝浣嗘槸榪欓」鎶鏈湪涓氱晫鐢ㄧ殑姣旇緝鏅亶錛岃兘婊¤凍鍩烘湰鐨勫姛鑳斤紝鍙互鍑忓皯鍩硅瀛︿範鎴愭湰銆?/FONT>
2)       涓棿灞?/SPAN>(UserManager)錛氬皢UserDAO浣滀負灞炴ф敞鍏ワ紝鍏跺疄鐜頒富瑕佹槸璋冪敤鏁版嵁灞傛帴鍙g殑涓浜涙柟娉曪紱瀹冨浜庝簨鍔℃帶鍒朵腑銆?/SPAN>
            閲囩敤Spring妗嗘灦瀹炵幇錛孖OC涓嶢OP鏄畠鐨勪唬鍚嶈瘝錛屽姛鑳介綈鍏紝闈炲父媯掔殑涓涓灦鏋勩?/FONT>
3)       鏁版嵁灞?/SPAN>(UserDAO)錛氬疄鐜扮被緇ф壙HibernateDaoSupport綾伙紝鍦ㄨ綾諱腑鍙互璋冪敤getHibernateTemplate()鐨勪竴浜涙柟娉曟墽琛屽叿浣撶殑鏁版嵁鎿嶄綔銆?/SPAN>
            閲囩敤Hibernate鍋歄/R mapping錛屼粠縐嶇榪硅薄鍙互鐪嬪嚭錛孒ibernate灝辨槸EJB3.0鐨刡eta鐗堛?/FONT>


]]>
澶ч亾鑷崇畝-Java涔?3縐嶆ā寮忎竴鐐瑰氨閫?/title><link>http://m.tkk7.com/jorwen/articles/29428.html</link><dc:creator>鏂逛匠鐜?/dc:creator><author>鏂逛匠鐜?/author><pubDate>Wed, 01 Feb 2006 04:42:00 GMT</pubDate><guid>http://m.tkk7.com/jorwen/articles/29428.html</guid><wfw:comment>http://m.tkk7.com/jorwen/comments/29428.html</wfw:comment><comments>http://m.tkk7.com/jorwen/articles/29428.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.tkk7.com/jorwen/comments/commentRss/29428.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/jorwen/services/trackbacks/29428.html</trackback:ping><description><![CDATA[FACTORY鈥斾漢鎵嶅競鍦猴細浠ュ線鏄鍝釜浜烘墠錛屽氨鎵懼摢涓漢鎵嶏紝鏁堢巼浣庯紝鐜板湪鏈変簡浜烘墠甯傚満錛屾垜浠彧闇 <BR>鐩存帴鍘諱漢鎵嶅競鍦烘寫涓涓ソ浜嗭紱 <BR><BR>BUILDER鈥旂敓浜ф祦姘寸嚎錛氫互鍓嶆槸鎵嬪伐涓氫綔鍧婂紡鐨勪漢宸ュ崟涓崟涓殑鐢熶駭闆朵歡鐒跺悗涓姝ヤ竴姝ョ粍瑁呭仛錛屽ソ <BR>姣旀湁浜嗗伐涓氶潻鍛斤紝鐜板湪閮界敱鐢熶駭嫻佹按綰夸唬鏇夸簡銆傚瑕侀犱赴鐢版苯杞︼紝鍏堝埗瀹氭苯杞︾殑鏋勯犲鐢辮濺鑳庛佹柟 <BR>鍚戠洏銆佸彂鍔ㄦ満緇勬垚銆傚啀浠ユ鏋勯犳爣鍑嗙敓浜т赴鐢版苯杞︾殑杞﹁儙銆佹柟鍚戠洏銆佸彂鍔ㄦ満銆傜劧鍚庤繘琛岀粍瑁呫傛渶鍚?<BR>寰楀埌涓扮敯姹借濺錛?<BR><BR>PROTOTYPE鈥斿嵃鍒鋒湳鐨勫彂鏄庯細浠ュ墠鍙兘涓磋創鎵嶈兘淇濇寔鍜屽埆浜虹殑瀛楄抗鍩烘湰鐩稿悓錛岀洿浠庡嵃鍒鋒妧鏈彂鏄庯紝 <BR>浠庤屼繚璇佷簡澶嶅埗寰楀拰鍘熺墿涓妯′竴鏍鳳紱 <BR><BR>SINGLETON鈥斿敮涓錛氫互鍓嶆槸鍟嗘爣婊″ぉ椋烇紝鐩稿悓鐨勫晢鏍囬毦鍏嶉犳垚渚墊潈錛岀洿浠庢湁鍟嗘爣淇濇姢娉曞悗錛屽氨淇濊瘉 <BR>浜嗕笉浼氬啀浜х敓絎浼佷笟浣跨敤鐩稿悓鐨勫晢鏍囷紱 <BR>緇撴瀯鍨嬫ā寮?<BR><BR>ADAPTER鈥旈泦浼椾漢涔嬬錛屾垚涓宸變箣鍏細姝﹀綋媧懼紶涓変赴浼氬お鏋佹嫵錛屽皯鏋楁淳鏅虹┖澶у笀浼氶噾鍒氳埇鑻ユ帉錛屽 <BR>鏋滀粬浠袱涓兘鎴愪負鎴戠殑甯堝倕錛屾垜灝辨棦浼氬お鏋佹嫵錛屽張浼氶噾鍒氳埇鑻ユ帉浜嗭紱 <BR><BR>DECORATOR鈥旈潚鍑轟簬钃濊岃儨浜庤摑錛氭褰撴淳寮犱笁涓頒細澶瀬鎷籌紝鏄垜甯堝倕錛屼粬鏁欎細浜嗘垜澶瀬鎷籌紝浣嗘垜鑷?<BR>宸辮繕浼氱偣钂欏彜寮忔憯浜わ紝寮犱笁涓板嵈涓嶄細銆備簬鏄垜灝辨垚浜咲ECORATOR妯″紡鐨勫疄鐜幫紱 <BR><BR>BRIDGE鈥旂櫧椹潪椹細椹箣棰滆壊鏈夐粦鐧斤紝椹箣鎬у埆鏈夊叕姣嶃傛垜浠鈥濊繖鏄┈鈥濆お鎶借薄錛岃鈥濊繖鏄粦鑹?<BR>鐨勫叕椹濆張澶鏉匡紝鍙湁灝嗛鑹蹭笌鎬у埆鍜岄┈鍔ㄦ佺粍鍚堬紝鈥濊繖鏄紙榛戣壊鐨勬垨鐧借壊鐨勶級錛堝叕鎴栨瘝錛夐┈鈥?<BR>鎵嶆樉寰楃伒媧昏岄閫革紝濡傛bridge妯″紡綺鵑珦寰楃煟銆?<BR><BR>COMPOSITE鈥斿ぇ瀹舵棌錛氬瓙鍙堢敓瀛欙紝瀛欏張鐢熷瓙錛屽瓙瀛愬瓩瀛欙紝鏃犵┓灝戒篃錛屽皢浼楀綰鋒潅鐨勪漢鍙g粍緇囨垚涓涓?<BR>鎸夎緢鍒嗘帓鍒楃殑澶у鏃忓嵆鏄妯″紡鐨勫疄鐜幫紱 <BR><BR>FACADE鈥旀眰鍚屽瓨寮傦細楂樹腑姣曚笟闇璇誨垵涓拰楂樹腑錛屽崥澹篃闇璇誨垵涓拰楂樹腑錛屽洜姝ゅ浗瀹跺皢鍒濅腑鍜岄珮涓櫘 <BR>鍙婃垚涔濆勾鍒朵箟鍔℃暀鑲詫紱 <BR><BR>FLYWEIGHT鈥斾竴鍔蟲案閫革細璁よ瘑涓夊崈姹夊瓧錛屽彲浠ュ簲浠樻棩甯歌涔︿笌鍐欏瓧錛屽彲瑙佸ご鑴戜腑瀛樺湪榪欎釜姹夊瓧搴撶殑 <BR>閲嶈錛?<BR><BR>PROXY鈥斿瀭甯樺惉鏀匡細鐘瑰娓呮湞搴風啓騫撮棿鐨勫洓澶у簻鑷o紝寰堝鏉冨埄涓嶅湪鐨囧笣鎵嬮噷錛屽繀欏婚氳繃杈呬綈澶ц嚕鍘?<BR>鍔烇紱 <BR><BR><BR>琛屼負妯″紡 <BR><BR>CHAIN OF RESPONSIBLEITY鈥旂鎴匡細浠ュ墠涓轟簡鎵炬埧鍒板鎵撳惉錛屾晥鐜囦綆涓旀壘涓嶅埌濂界殑鎴挎簮銆傜幇鍦ㄦ湁浜?<BR>鎴垮眿涓粙錛屼簬鏄悜鎴垮眿涓粙鎻愬嚭縐熸埧璇鋒眰錛屼腑浠嬫彁渚涗竴涓悎閫傜殑鎴挎簮錛屾弧鎰忓垯涓嶅啀璇鋒眰錛屼笉婊℃剰 <BR>緇х畫鐪嬫埧錛岀洿鍒版弧鎰忎負姝紱 <BR><BR>COMMAND鈥斿熷垁鏉浜猴細浠ュ墠鏄兂鏉璋佸氨鏉錛屼絾涓孌墊椂闂村悗棰嗘偀鍒幫紝闀挎浠ュ線蹇呭皢緇撲粐澶錛屼簬鏄亣 <BR>鎵嬩粬浜猴紝鎸戞嫧浠栦漢涔嬮棿鐨勫叧緋諱粠鑰岃揪鍒拌嚜宸辯殑鐩殑錛?<BR><BR>INTERPRETER鈥旀枃璦鏂囨敞閲婏細涓孌墊枃璦鏂囷紝灝嗗畠緲昏瘧鎴愮櫧璇濇枃錛?<BR><BR>ITERATOR鈥旇刀灝芥潃緇濓細涓涓竴涓殑鎼滅儲錛岀粷涓嶆斁鎺変竴涓紱 <BR><BR>MEDIATOR鈥斾笁瑙掑猴細鏈潵鍗冨ご涓囩華鐨勫哄姟鍏崇郴錛屽拷鍑烘潵涓涓粙錛屽寘鎻藉叾涓鍒囷紝浜庢槸涓夎鍏崇郴鍙樻垚浜?<BR>鐙珛鐨勪笁鏂規壘絎洓鏂逛腑浠嬬殑鍏崇郴錛?<BR><BR>MEMENTO鈥旀湁紱忓悓浜細鎴戞湁澶氬皯錛屼綘灝辨湁澶氬皯錛?<BR><BR>OBSERVER鈥旂湅瀹堣咃細涓鏃﹁鐪嬪畧鑰呮湁浠涔堝紓甯告儏鍐碉紝瀹氫細鍙婃椂鍋氬嚭鍙嶅簲錛?<BR><BR>STATE鈥旇繘鍑鴻嚜鐢憋細濡備竴鎵囬棬錛岃兘榪涜兘鍑猴紝濡傛灉鏈夊緢澶氫漢闅忔椂榪涜繘鍑哄嚭蹇呭畾鏄懼緱鏉備貢鑰屽畨鍏紝濡備粖 <BR>璁句竴淇濆畨闄愬埗鍏惰繘鍑猴紝濡傛鍚勪漢榪涘嚭鎵嶆樉寰楄鑼冿紱 <BR><BR>STRATEGY鈥斾箙鐥呮垚鑹尰錛氬浜虹敓鐥呭彲浠ユ湁鍚勭鐥囩姸錛屼絾緇忚繃闀挎湡鎽哥儲錛屽氨鍙互鎬葷粨鍑烘劅鍐掋佽偤鐥呫?<BR>鑲濈値絳夊嚑縐嶏紱 <BR><BR><BR>TEMPLATE METHOD鈥斺旂悊璁轟笉涓瀹氳瀹炶返錛氭暀緇冪殑瀛︾敓浼氭父娉沖氨琛屼簡錛岃嚦浜庢暀緇冧細涓嶄細鍒欐棤鍏崇揣瑕侊紱 <BR><BR>VISITOR鈥斾緷娉曟不緗細鍥犲紶涓夋潃浜鴻琚姝伙紝鏉庡洓鍋風獌瑕佽緗氭銆傜敱姝ゅ娍蹇呭埗瀹氬緗氬埗搴︼紝鏁呭埗瀹?<BR>娉曞緥鍐欐槑鏉浜恒佹斁鐏佸伔紿冪瓑緗鍙椾粈涔堝緗氾紝緇忛氳繃鍚庨』鍙樺姩瑕佸皬銆備粖鍚庢湁浜虹姱緗笉綆℃槸璋侊紝鎸?<BR>鍏辨潯渚嬪緗氬嵆鏄紝榪欏氨鏄闂呮ā寮忚癁鐢熺殑鍏ㄨ繃紼嬶紱<img src ="http://m.tkk7.com/jorwen/aggbug/29428.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/jorwen/" target="_blank">鏂逛匠鐜?/a> 2006-02-01 12:42 <a href="http://m.tkk7.com/jorwen/articles/29428.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://m.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://wjjccw.com" target="_blank">日本免费v片一二三区</a>| <a href="http://yongyihongze.com" target="_blank">国产免费不卡视频</a>| <a href="http://caopropp.com" target="_blank">免费jjzz在线播放国产</a>| <a href="http://0967c.com" target="_blank">亚洲a∨无码精品色午夜</a>| <a href="http://bx85.com" target="_blank">成年女人永久免费观看片</a>| <a href="http://avyjj.com" target="_blank">精品久久久久久久久亚洲偷窥女厕</a>| <a href="http://33a55.com" target="_blank">嫩草视频在线免费观看</a>| <a href="http://pengkaimjg.com" target="_blank">亚洲精品第一国产综合亚AV</a>| <a href="http://626632.com" target="_blank">啊v在线免费观看</a>| <a href="http://05942688.com" target="_blank">又粗又长又爽又长黄免费视频</a>| <a href="http://69xjj.com" target="_blank">亚洲AV无码乱码精品国产</a>| <a href="http://by4471.com" target="_blank">一级做a爱过程免费视频高清</a>| <a href="http://wwwfac37.com" target="_blank">久久亚洲高清综合</a>| <a href="http://bobostrong31.com" target="_blank">野花香高清视频在线观看免费 </a>| <a href="http://jioupin.com" target="_blank">久热中文字幕在线精品免费</a>| <a href="http://watchmini.com" target="_blank">亚洲国产精品综合福利专区</a>| <a href="http://hdznzdh.com" target="_blank">国产啪精品视频网免费</a>| <a href="http://tpwelert.com" target="_blank">亚洲av乱码一区二区三区按摩</a>| <a href="http://kwknc.com" target="_blank">免费人成视频在线观看不卡</a>| <a href="http://cytanhuang.com" target="_blank">aa在线免费观看</a>| <a href="http://niu44.com" target="_blank">亚洲国产人成在线观看69网站 </a>| <a href="http://my77789.com" target="_blank">ssswww日本免费网站片</a>| <a href="http://zzanfang.com" target="_blank">国产AV无码专区亚洲Av</a>| <a href="http://19520888.com" target="_blank">5g影院5g天天爽永久免费影院</a>| <a href="http://ai-xian.com" target="_blank">中文字幕无码亚洲欧洲日韩</a>| <a href="http://qixiresort.com" target="_blank">国产性生交xxxxx免费</a>| <a href="http://djllgs.com" target="_blank">a毛片免费全部在线播放**</a>| <a href="http://789xxoo.com" target="_blank">内射少妇36P亚洲区</a>| <a href="http://61255555.com" target="_blank">国内外成人免费视频</a>| <a href="http://79909d.com" target="_blank">一级做a爱过程免费视</a>| <a href="http://changfafangzhi.com" target="_blank">97亚洲熟妇自偷自拍另类图片</a>| <a href="http://864007.com" target="_blank">成人免费午夜无码视频 </a>| <a href="http://78555yy.com" target="_blank">99在线热视频只有精品免费</a>| <a href="http://ynyinglie.com" target="_blank">亚洲一级黄色大片</a>| <a href="http://jsky163.com" target="_blank">亚洲高清无码专区视频</a>| <a href="http://gzqhit.com" target="_blank">3344永久在线观看视频免费首页 </a>| <a href="http://xyflash.com" target="_blank">亚洲色成人WWW永久在线观看</a>| <a href="http://yy468.com" target="_blank">亚洲国产成人五月综合网</a>| <a href="http://25gh.com" target="_blank">最近免费中文字幕高清大全</a>| <a href="http://bjmyhfc.com" target="_blank">亚洲国产AV无码一区二区三区 </a>| <a href="http://tsxyhq.com" target="_blank">一级黄色片免费观看</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>