锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产精品成人久久,亚洲成亚洲乱码一二三四区软件,校园亚洲春色另类小说合集http://m.tkk7.com/jsdk999/zh-cnMon, 12 May 2025 11:10:24 GMTMon, 12 May 2025 11:10:24 GMT60鐢↗S瀹炵幇鐨凪AP綾?/title><link>http://m.tkk7.com/jsdk999/archive/2006/12/01/84897.html</link><dc:creator>WindDC</dc:creator><author>WindDC</author><pubDate>Fri, 01 Dec 2006 09:24:00 GMT</pubDate><guid>http://m.tkk7.com/jsdk999/archive/2006/12/01/84897.html</guid><wfw:comment>http://m.tkk7.com/jsdk999/comments/84897.html</wfw:comment><comments>http://m.tkk7.com/jsdk999/archive/2006/12/01/84897.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://m.tkk7.com/jsdk999/comments/commentRss/84897.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/jsdk999/services/trackbacks/84897.html</trackback:ping><description><![CDATA[ <p>鏈▼搴忕敤JS鍐欑殑涓涓被鎷熶簬JAVA涓璏AP綾?鍙互瀵歸敭鍊煎榪涜緇存姢.<br /><br /><br />/*<br />name:聽(tīng)聽(tīng)聽(tīng) Map.js<br />author:聽(tīng) WindDC<br />date:聽(tīng)聽(tīng)聽(tīng) 2006-10-27<br />content: 鏈▼搴忕敤JS瀹炵幇綾繪嫙JAVA涓璏AP瀵瑰儚鐨勫姛鑳?br />*/</p> <p>function Node(key,value){//閿煎瀵硅薄<br />聽(tīng)聽(tīng)聽(tīng) this.key=key;<br />聽(tīng)聽(tīng)聽(tīng) this.value=value;<br />}</p> <p>function Map(){//Map綾?br />聽(tīng)聽(tīng)聽(tīng) this.nodes=new Array();<br />}</p> <p>Map.prototype.put=function(key,value){//寰瀹瑰櫒涓姞鍏ヤ竴涓敭鍊煎<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) for(var i=0;i<this.nodes.length;i++)<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if(this.nodes[i].key==key){//濡傛灉閿煎凡瀛樺湪錛屽垯put鏂規(guī)硶涓烘洿鏂板凡鏈夋暟鎹?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) this.nodes[i].value=value;<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return;<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) var node=new Node(key,value);<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) this.nodes.push(node);<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return;<br />}//put</p> <p>聽(tīng)聽(tīng) <br />Map.prototype.get=function(key){//鑾峰彇鎸囧畾閿殑鍊?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) for(var i=0;i<this.nodes.length;i++)<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if(this.nodes[i].key==key)<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return this.nodes[i].value;<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return null;<br />}//get<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng) <br />Map.prototype.size=function(){//鑾峰彇瀹瑰櫒涓璞$殑涓暟<br />聽(tīng)聽(tīng)聽(tīng) 聽(tīng)return this.nodes.length;<br />}//size</p> <p>聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng)聽(tīng)聽(tīng) <br />Map.prototype.clear=function(){//娓呯┖瀹瑰櫒<br />聽(tīng)聽(tīng)聽(tīng) 聽(tīng)while(this.nodes.length>0)<br />聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng)聽(tīng) this.nodes.pop();聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <br />}//clear<br />聽(tīng)<br />Map.prototype.remove=function(key){//鍒犻櫎鎸囧畾鍊?br />聽(tīng)聽(tīng)聽(tīng) 聽(tīng)for(var i=0;i<this.nodes.length;i++)<br />聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng)聽(tīng) if(this.nodes[i].key==key){<br />聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng) if(i>0)<br />聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) var nodes1=this.nodes.concat(this.nodes.slice(0,i-1),this.nodes.slice(i+1));<br />聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) else//鍒犻櫎鐨勬槸絎竴涓厓绱?br />聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 聽(tīng) var nodes1=nodes.slice(1);<br />聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) this.nodes=nodes1;</p> <p>聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng)聽(tīng) }<br />}//remove<br /><br />聽(tīng)聽(tīng)聽(tīng) <br />Map.prototype.isEmpty=function(){//鏄惁涓虹┖<br />聽(tīng)聽(tīng)聽(tīng) 聽(tīng)if(this.nodes.length==0)<br />聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng) return true;<br />聽(tīng)聽(tīng)聽(tīng) 聽(tīng)else<br />聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng) return false;<br />}//isEmpty<br />聽(tīng)聽(tīng)聽(tīng) <br />Map.prototype.toString=function(){<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng) var str="[";<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng) for(var i=0;i<this.nodes.length;i++){<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if(i<this.nodes.length-1)<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) str=str+this.nodes[i].key+",";<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) else<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) str=str+this.nodes[i].key;聽(tīng)聽(tīng)聽(tīng)聽(tīng)<br />聽(tīng)聽(tīng) 聽(tīng)}<br />聽(tīng)聽(tīng)聽(tīng) str=str+"]";<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)return str;<br />}</p> <img src ="http://m.tkk7.com/jsdk999/aggbug/84897.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/jsdk999/" target="_blank">WindDC</a> 2006-12-01 17:24 <a href="http://m.tkk7.com/jsdk999/archive/2006/12/01/84897.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>.net瀹炵幇鐨勬暟鎹簱閾炬帴姹?/title><link>http://m.tkk7.com/jsdk999/archive/2006/12/01/84892.html</link><dc:creator>WindDC</dc:creator><author>WindDC</author><pubDate>Fri, 01 Dec 2006 09:11:00 GMT</pubDate><guid>http://m.tkk7.com/jsdk999/archive/2006/12/01/84892.html</guid><wfw:comment>http://m.tkk7.com/jsdk999/comments/84892.html</wfw:comment><comments>http://m.tkk7.com/jsdk999/archive/2006/12/01/84892.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/jsdk999/comments/commentRss/84892.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/jsdk999/services/trackbacks/84892.html</trackback:ping><description><![CDATA[ <p>聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 鏈枃鏄敤.net瀹炵幇鐨勬暟鎹簱閾炬帴姹?澶т綋浣撶幇浜?jiǎn)鏁版嵁搴撻摼鎺ユ睜鐨勫疄鐜版濇兂,ADO.NET宸茬粡鎻愪緵浜?jiǎn)寰堝ソ鐨勯摼鎺ユ睜缁存?鎵浠ユ湰紼嬪簭鍩烘湰娌℃湁浠涔堝疄鐢ㄤ環(huán)鍊?<br /><br />1.閾炬帴姹犵鐞嗙被<br />using System;<br />using System.Data;<br />using System.Data.SqlClient;<br />using System.Data.OleDb;<br />using System.Collections;<br />using System.Configuration;</p> <p>/// <summary><br />/// DbConnectionPool 鐨勬憳瑕佽鏄?br />/// </summary></p> <p>namespace dbopr<br />{<br />聽(tīng)聽(tīng)聽(tīng) public class DbConnectionPool<br />聽(tīng)聽(tīng)聽(tīng) {<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //瀹氫箟瀛樻斁鏁版嵁搴撻摼鎺ョ殑闃熷垪<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) private static Queue connections=new Queue();</p> <p>聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //鏁版嵁搴撳弬鏁?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) private static string ConnString = "";聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //閾炬帴瀛楃涓?/p> <p>聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //閾炬帴姹犲弬鏁?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) private static int InitSize = 20;聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //鍒濆鍖栭摼鎺ユ睜澶у皬<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) private static int MaxSize = 100;聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //鏈澶ч摼鎺ユ暟<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) private static int QueueSize = 50;聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //闃熷垪涓渶澶х淮鎶ょ殑閾炬帴鏁?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) private static int ConnNum = 0;聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //緋葷粺緇存姢鐨勯摼鎺ユ繪暟</p> <p> <br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //瀹氫箟鏁版嵁搴撶被鍨嬶紝1琛ㄧず涓篠qlServer鏁版嵁搴擄紝2琛ㄧず鍏跺畠鐨凮LE DB錛涢粯璁や負(fù)SqlServer<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) private static int聽(tīng) DbType = 1;<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) public static int DbType<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) set<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) DbType = value;<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }</p> <p>聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) private DbConnectionPool()<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) try{<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) ConnString = Configuration.connectionStrings["DbSource"].connectionString;<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) InitSize = int.Parse(Configuration.connectionStrings["InitSize"].connectionString);<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) MaxSize = int.Parse(Configuration.connectionStrings["MaxSize"].connectionString);<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) QueueSize = int.Parse(Configuration.connectionStrings["QueueSize"].connectionString);<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) DbType = int.Parse(Configuration.connectionStrings["DbType"].connectionString);<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) initPool();<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) catch(Exception e) {<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //鍒濆鍖栭摼鎺ユ睜<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) private static void initPool(){<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) int i;<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) for (i = 1; i <= InitSize; i++) {<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if (DbType == 1)<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) connections.Enqueue(newSqlConn());<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) else<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) connections.Enqueue(newOleConn());<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }</p> <p>聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //鑾峰彇涓涓猄ql Server閾炬帴瀵硅薄<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) private static SqlConnection newSqlConn()<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) ConnNum++;<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return new SqlConnection(ConnString);<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //鑾峰彇涓涓狾LE DB閾炬帴瀵瑰儚<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) private static OleDbConnection newOleConn() <br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) ConnNum++;<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return new OleDbConnection(ConnString);<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }</p> <p>聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //鑾峰彇涓涓暟鎹簱閾炬帴<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) public static IDbConnection getConn() {<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if (connections.Count == 0)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //濡傛灉闃熷垪涓摼鎺ョ敤瀹岋紝鍒欐柊寤轟竴涓摼鎺ユ斁鍏ラ槦鍒?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if (ConnNum > MaxSize)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //濡傛灉褰撳墠媧誨姩閾炬帴杈懼埌鏈澶э紝鍒欑瓑寰呴摼鎺?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return null;<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) else<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if (DbType == 1)<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) connections.Enqueue(newSqlConn());<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) else<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) connections.Enqueue(newOleConn());<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return connections.Dequeue();<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) else<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return connections.Dequeue();<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }</p> <p>聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //閲婃斁涓涓椿榪愰摼鎺?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) public static void reConn(IDbConnection conn) {<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) if (connections.Count > QueueSize)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //濡傛灉闃熷垪涓厓绱犱釜鏁板凡杈懼埌鏈澶э紝鍒欏叧闂摼鎺?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) conn.Close();<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) else<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) connections.Enqueue(conn);<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }</p> <p>聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //閿姣侀摼鎺ユ睜<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) public static void ClearPool() {<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) while(connections.Count>0)<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) (IDbConnection)connections.Dequeue().Close();<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }<br />聽(tīng)聽(tīng)聽(tīng) }<br />}<br /><br />2.閾炬帴鐢熸垚綾?br />using System;<br />using System.Data;<br />using System.Data.SqlClient;<br />using System.Data.OleDb;<br />using System.Configuration;<br />using System.Web;</p> <p>/// <summary><br />/// DbConn 鐨勬憳瑕佽鏄?br />/// </summary></p> <p>namespace dbopr<br />{<br />聽(tīng)聽(tīng)聽(tīng) public class DbConnection<br />聽(tīng)聽(tīng)聽(tīng) {<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) private static IDbConnection conn;<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) public DbConnection()<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) // TODO: 鍦ㄦ澶勬坊鍔犳瀯閫犲嚱鏁伴昏緫<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }</p> <p>聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) public static SqlConnection getSqlConn()<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) {<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //鑾峰彇閾炬帴姹犱腑鐨凷ql Server鐨勯摼鎺?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) conn = DbConnectionPool.getConn();<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return (SqlConnection)conn;<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }</p> <p>聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) public static OleDbConnection getOleConn() {<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //鑾峰彇鍏跺畠OLE DB鐨勯摼鎺?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) conn = DbConnectionPool.getConn();<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) return (OleDbConnection)conn;<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }</p> <p>聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) public static void Close() {<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) //鏀懼洖鐢ㄨ繃鐨勯摼鎺?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) DbConnectionPool.reConn(conn);<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) }<br />聽(tīng)聽(tīng)聽(tīng) }<br />}</p> <img src ="http://m.tkk7.com/jsdk999/aggbug/84892.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/jsdk999/" target="_blank">WindDC</a> 2006-12-01 17:11 <a href="http://m.tkk7.com/jsdk999/archive/2006/12/01/84892.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鐪嬪埌涓閬嶅ソ鏂囩珷鍟婏紝澶у鍒嗕韓涓嬶紒--鎶借薄綾誨拰鎺ュ彛鐨勪嬌鐢ㄥ満鍚?/title><link>http://m.tkk7.com/jsdk999/archive/2006/09/22/71274.html</link><dc:creator>WindDC</dc:creator><author>WindDC</author><pubDate>Fri, 22 Sep 2006 03:32:00 GMT</pubDate><guid>http://m.tkk7.com/jsdk999/archive/2006/09/22/71274.html</guid><wfw:comment>http://m.tkk7.com/jsdk999/comments/71274.html</wfw:comment><comments>http://m.tkk7.com/jsdk999/archive/2006/09/22/71274.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/jsdk999/comments/commentRss/71274.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/jsdk999/services/trackbacks/71274.html</trackback:ping><description><![CDATA[abstract class鍜宨nterface鏄疛ava璇█涓浜庢娊璞$被瀹氫箟榪涜鏀寔鐨勪袱縐嶆満鍒訛紝姝f槸鐢變簬榪欎袱縐嶆満鍒剁殑瀛樺湪錛屾墠璧嬩簣浜?jiǎn)Java寮哄ぇ鐨勯潰鍚戝璞¤兘鍔涖?abstract class鍜宨nterface涔嬮棿鍦ㄥ浜庢娊璞$被瀹氫箟鐨勬敮鎸佹柟闈㈠叿鏈夊緢澶х殑鐩鎬技鎬э紝鐢氳嚦鍙互鐩鎬簰鏇挎崲錛屽洜姝ゅ緢澶氬紑鍙戣呭湪榪涜鎶借薄綾誨畾涔夋椂瀵逛簬 abstract class鍜宨nterface鐨勯夋嫨鏄懼緱姣旇緝闅忔剰銆傚叾瀹烇紝涓よ呬箣闂磋繕鏄湁寰堝ぇ鐨勫尯鍒殑錛屽浜庡畠浠殑閫夋嫨鐢氳嚦鍙嶆槧鍑哄浜庨棶棰橀鍩熸湰璐ㄧ殑鐞嗚В銆佸浜庤璁℃剰鍥劇殑鐞嗚В鏄惁姝g‘銆佸悎鐞嗐傛湰鏂囧皢瀵瑰畠浠箣闂寸殑鍖哄埆榪涜涓鐣墫鏋愶紝璇曞浘緇欏紑鍙戣呮彁渚涗竴涓湪浜岃呬箣闂磋繘琛岄夋嫨鐨勪緷鎹?br /><br />鐞嗚В鎶借薄綾?br /><br />abstract class鍜宨nterface鍦↗ava璇█涓兘鏄敤鏉ヨ繘琛屾娊璞$被錛堟湰鏂囦腑鐨勬娊璞$被騫墮潪浠巃bstract class緲昏瘧鑰屾潵錛屽畠琛ㄧず鐨勬槸涓涓娊璞′綋錛岃宎bstract class涓篔ava璇█涓敤浜庡畾涔夋娊璞$被鐨勪竴縐嶆柟娉曪紝璇瘋鑰呮敞鎰忓尯鍒嗭級(jí)瀹氫箟鐨勶紝閭d箞浠涔堟槸鎶借薄綾伙紝浣跨敤鎶借薄綾昏兘涓烘垜浠甫鏉ヤ粈涔堝ソ澶勫憿錛?br /><br />鍦ㄩ潰鍚戝璞$殑姒傚康涓紝鎴戜滑鐭ラ亾鎵鏈夌殑瀵硅薄閮芥槸閫氳繃綾繪潵鎻忕粯鐨勶紝浣嗘槸鍙嶈繃鏉ュ嵈涓嶆槸榪欐牱銆傚茍涓嶆槸鎵鏈夌殑綾婚兘鏄敤鏉ユ弿緇樺璞$殑錛屽鏋滀竴涓被涓病鏈夊寘鍚凍澶熺殑淇℃伅鏉ユ弿緇樹(shù)竴涓叿浣撶殑瀵硅薄錛岃繖鏍風(fēng)殑綾誨氨鏄娊璞$被銆傛娊璞$被寰寰鐢ㄦ潵琛ㄥ緛鎴戜滑鍦ㄥ闂棰嗗煙榪涜鍒嗘瀽銆佽璁′腑寰楀嚭鐨勬娊璞℃蹇碉紝鏄涓緋誨垪鐪嬩笂鍘諱笉鍚岋紝浣嗘槸鏈川涓婄浉鍚岀殑鍏蜂綋姒傚康鐨勬娊璞°傛瘮濡傦細(xì)濡傛灉鎴戜滑榪涜涓涓浘褰㈢紪杈戣蔣浠剁殑寮鍙戯紝灝變細(xì)鍙戠幇闂棰嗗煙瀛樺湪鐫鍦嗐佷笁瑙掑艦榪欐牱涓浜涘叿浣撴蹇碉紝瀹冧滑鏄笉鍚岀殑錛屼絾鏄畠浠張閮藉睘浜庡艦鐘惰繖鏍蜂竴涓蹇碉紝褰㈢姸榪欎釜姒傚康鍦ㄩ棶棰橀鍩熸槸涓嶅瓨鍦ㄧ殑錛屽畠?yōu)鏄竴涓娊璞℃蹇點(diǎn)傛鏄洜涓烘娊璞$殑姒傚康鍦ㄩ棶棰橀鍩熸病鏈夊搴旂殑鍏蜂綋姒傚康錛屾墍浠ョ敤浠ヨ〃寰佹娊璞℃蹇電殑鎶借薄綾繪槸涓嶈兘澶熷疄渚嬪寲鐨勩?br /><br />鍦ㄩ潰鍚戝璞¢鍩燂紝鎶借薄綾諱富瑕佺敤鏉ヨ繘琛岀被鍨嬮殣钘忋傛垜浠彲浠ユ瀯閫犲嚭涓涓浐瀹氱殑涓緇勮涓虹殑鎶借薄鎻忚堪錛屼絾鏄繖緇勮涓哄嵈鑳藉鏈変換鎰忎釜鍙兘鐨勫叿浣撳疄鐜版柟寮忋傝繖涓娊璞℃弿榪板氨鏄娊璞$被錛岃岃繖涓緇勪換鎰忎釜鍙兘鐨勫叿浣撳疄鐜板垯琛ㄧ幇涓烘墍鏈夊彲鑳界殑媧劇敓綾匯傛ā鍧楀彲浠ユ搷浣滀竴涓娊璞′綋銆傜敱浜庢ā鍧椾緷璧栦簬涓涓浐瀹氱殑鎶借薄浣擄紝鍥犳瀹冨彲浠ユ槸涓嶅厑璁鎬慨鏀圭殑錛涘悓鏃訛紝閫氳繃浠庤繖涓娊璞′綋媧劇敓錛屼篃鍙墿灞曟妯″潡鐨勮涓哄姛鑳姐傜啛鎮(zhèn)塐CP鐨勮鑰呬竴瀹氱煡閬擄紝涓轟簡(jiǎn)鑳藉瀹炵幇闈㈠悜瀵硅薄璁捐鐨勪竴涓渶鏍稿績(jī)鐨勫師鍒橭CP(Open-Closed Principle)錛屾娊璞$被鏄叾涓殑鍏抽敭鎵鍦ㄣ?br /><br />浠庤娉曞畾涔夊眰闈㈢湅abstract class鍜宨nterface<br /><br />鍦ㄨ娉曞眰闈紝Java璇█瀵逛簬abstract class鍜宨nterface緇欏嚭浜?jiǎn)涓嶅悓鐨勫畾涔夋柟寮忓Q屼笅闈互瀹氫箟涓涓悕涓篋emo鐨勬娊璞$被涓轟緥鏉ヨ鏄庤繖縐嶄笉鍚屻?br /><br />浣跨敤abstract class鐨勬柟寮忓畾涔塂emo鎶借薄綾葷殑鏂瑰紡濡備笅錛?br /><br />abstract class Demo 锝?br />abstract void method1();<br />abstract void method2();<br />鈥?br />锝?br /><br />浣跨敤interface鐨勬柟寮忓畾涔塂emo鎶借薄綾葷殑鏂瑰紡濡備笅錛?br /><br />interface Demo {<br />void method1();<br />void method2();<br />鈥?br />}<br /><br />鍦╝bstract class鏂瑰紡涓紝Demo鍙互鏈夎嚜宸辯殑鏁版嵁鎴愬憳錛屼篃鍙互鏈夐潪abstarct鐨勬垚鍛樻柟娉曪紝鑰屽湪interface鏂瑰紡鐨勫疄鐜頒腑錛孌emo鍙兘澶熸湁闈?rùn)鎬佺殑涓嶈兘琚慨鏀圭殑鏁版嵁鎴愬憳錛堜篃灝辨槸蹇呴』鏄痵tatic final鐨勶紝涓嶈繃鍦╥nterface涓竴鑸笉瀹氫箟鏁版嵁鎴愬憳錛夛紝鎵鏈夌殑鎴愬憳鏂規(guī)硶閮芥槸abstract鐨勩備粠鏌愮鎰忎箟涓婅錛宨nterface鏄竴縐嶇壒孌婂艦寮忕殑abstract class銆?br /><br />浠庣紪紼嬬殑瑙掑害鏉ョ湅錛宎bstract class鍜宨nterface閮藉彲浠ョ敤鏉ュ疄鐜癲esign by contract鐨勬濇兂銆備絾鏄湪鍏蜂綋鐨勪嬌鐢ㄤ笂闈㈣繕鏄湁涓浜涘尯鍒殑銆?br /><br />棣栧厛錛宎bstract class鍦↗ava璇█涓〃紺虹殑鏄竴縐嶇戶(hù)鎵垮叧緋伙紝涓涓被鍙兘浣跨敤涓嬈$戶(hù)鎵垮叧緋匯備絾鏄紝涓涓被鍗村彲浠ュ疄鐜板涓猧nterface銆備篃璁革紝榪欐槸Java璇█鐨勮璁¤呭湪鑰冭檻Java瀵逛簬澶氶噸緇ф壙鐨勬敮鎸佹柟闈㈢殑涓縐嶆姌?shù)腑鑰冭檻鍚с?br /><br />鍏舵錛屽湪abstract class鐨勫畾涔変腑錛屾垜浠彲浠ヨ祴浜堟柟娉曠殑榛樿琛屼負(fù)銆備絾鏄湪interface鐨勫畾涔変腑錛屾柟娉曞嵈涓嶈兘鎷ユ湁榛樿琛屼負(fù)錛屼負(fù)浜?jiǎn)缁晿q囪繖涓檺鍒訛紝蹇呴』浣跨敤濮旀墭錛屼絾鏄繖浼?澧炲姞涓浜涘鏉傛э紝鏈夋椂浼?xì)閫犳垚寰堝ぇ鐨勯夯鐑?chǔ)銆?br /><br />鍦ㄦ娊璞$被涓笉鑳藉畾涔夐粯璁よ涓鴻繕瀛樺湪鍙︿竴涓瘮杈冧弗閲嶇殑闂錛岄偅灝辨槸鍙兘浼?xì)閫犳垚緇存姢涓婄殑楹葷儲(chǔ)銆傚洜涓哄鏋滃悗鏉ユ兂淇敼綾葷殑鐣岄潰錛堜竴鑸氳繃abstract class鎴栬卛nterface鏉ヨ〃紺猴級(jí)浠ラ傚簲鏂扮殑鎯呭喌錛堟瘮濡傦紝娣誨姞鏂扮殑鏂規(guī)硶鎴栬呯粰宸茬敤鐨勬柟娉曚腑娣誨姞鏂扮殑鍙傛暟錛夋椂錛屽氨浼?xì)闈炲父鐨勯喝潈?chǔ)錛屽彲鑳借鑺辮垂寰堝鐨勬椂闂達(dá)紙瀵逛簬媧劇敓綾誨緢澶氱殑鎯呭喌錛屽挨涓哄姝わ級(jí)銆備絾鏄鏋滅晫闈㈡槸閫氳繃abstract class鏉ュ疄鐜扮殑錛岄偅涔堝彲鑳藉氨鍙渶瑕佷慨鏀瑰畾涔夊湪abstract class涓殑榛樿琛屼負(fù)灝卞彲浠ヤ簡(jiǎn)銆?br />鍚屾牱錛屽鏋滀笉鑳藉湪鎶借薄綾諱腑瀹氫箟榛樿琛屼負(fù)錛屽氨浼?xì)瀵艰嚧鍚屾狅L(fēng)殑鏂規(guī)硶瀹炵幇鍑虹幇鍦ㄨ鎶借薄綾葷殑姣忎竴涓淳鐢熺被涓紝榪濆弽浜?one rule錛宱ne place鍘熷垯錛岄犳垚浠g爜閲嶅錛屽悓鏍蜂笉鍒╀簬浠ュ悗鐨勭淮鎶ゃ傚洜姝わ紝鍦╝bstract class鍜宨nterface闂磋繘琛岄夋嫨鏃惰闈炲父鐨勫皬蹇?jī)銆?br /><br />浠庤璁$悊蹇靛眰闈㈢湅abstract class鍜宨nterface<br /><br />涓婇潰涓昏浠庤娉曞畾涔夊拰緙栫▼鐨勮搴﹁榪頒簡(jiǎn)abstract class鍜宨nterface鐨勫尯鍒紝榪欎簺灞傞潰鐨勫尯鍒槸姣旇緝浣庡眰嬈$殑銆侀潪鏈川鐨勩傛湰灝忚妭灝嗕粠鍙︿竴涓眰闈細(xì)abstract class鍜宨nterface鎵鍙嶆槧鍑虹殑璁捐鐞嗗康錛屾潵鍒嗘瀽涓涓嬩簩鑰呯殑鍖哄埆銆備綔鑰呰涓猴紝浠庤繖涓眰闈㈣繘琛屽垎鏋愭墠鑳界悊瑙d簩鑰呮蹇電殑鏈川鎵鍦ㄣ?br /><br />鍓嶉潰宸茬粡鎻愬埌榪囷紝abstarct class鍦↗ava璇█涓綋鐜頒簡(jiǎn)涓縐嶇戶(hù)鎵垮叧緋伙紝瑕佹兂浣垮緱緇ф壙鍏崇郴鍚堢悊錛岀埗綾誨拰媧劇敓綾諱箣闂村繀欏誨瓨鍦╥s a鍏崇郴錛屽嵆鐖剁被鍜屾淳鐢熺被鍦ㄦ蹇墊湰璐ㄤ笂搴旇鏄浉鍚岀殑錛堝弬鑰冩枃鐚?銆曚腑鏈夊叧浜巌s a鍏崇郴鐨勫ぇ綃囧箙娣卞叆鐨勮榪幫紝鏈夊叴瓚g殑璇昏呭彲浠ュ弬鑰冿級(jí)銆傚浜巌nterface 鏉ヨ鍒欎笉鐒?dòng)灱岒q朵笉瑕佹眰interface鐨勫疄鐜拌呭拰interface瀹氫箟鍦ㄦ蹇墊湰璐ㄤ笂鏄竴鑷寸殑錛屼粎浠呮槸瀹炵幇浜?jiǎn)interface瀹氫箟鐨勫綰﹁屽凡銆備負(fù)浜?jiǎn)鋴设櫩颁究浜庣悊瑙eQ屼笅闈㈠皢閫氳繃涓涓畝鍗曠殑瀹炰緥榪涜璇存槑銆?br /><br />鑰冭檻榪欐牱涓涓緥瀛愶紝鍋囪鍦ㄦ垜浠殑闂棰嗗煙涓湁涓涓叧浜嶥oor鐨勬娊璞℃蹇碉紝璇oor鍏鋒湁鎵ц涓や釜鍔ㄤ綔open鍜宑lose錛屾鏃舵垜浠彲浠ラ氳繃abstract class鎴栬卛nterface鏉ュ畾涔変竴涓〃紺鴻鎶借薄姒傚康鐨勭被鍨嬶紝瀹氫箟鏂瑰紡鍒嗗埆濡備笅鎵紺猴細(xì)<br /><br />浣跨敤abstract class鏂瑰紡瀹氫箟Door錛?br /><br />abstract class Door {<br />abstract void open();<br />abstract void close()錛?br />}<br />浣跨敤interface鏂瑰紡瀹氫箟Door錛?br />interface Door {<br />void open();<br />void close();<br />}<br />鍏朵粬鍏蜂綋鐨凞oor綾誨瀷鍙互extends浣跨敤abstract class鏂瑰紡瀹氫箟鐨凞oor鎴栬卛mplements浣跨敤interface鏂瑰紡瀹氫箟鐨凞oor銆傜湅璧鋒潵濂藉儚浣跨敤abstract class鍜宨nterface娌℃湁澶х殑鍖哄埆銆?br />濡傛灉鐜板湪瑕佹眰Door榪樿鍏鋒湁鎶ヨ鐨勫姛鑳姐傛垜浠濡備綍璁捐閽堝璇ヤ緥瀛愮殑綾葷粨鏋勫憿錛堝湪鏈緥涓紝涓昏鏄負(fù)浜?jiǎn)灞暯C篴bstract class鍜宨nterface鍙嶆槧鍦ㄨ璁$悊蹇典笂鐨勫尯鍒紝鍏朵粬鏂歸潰鏃犲叧鐨勯棶棰橀兘鍋氫簡(jiǎn)綆鍖栨垨鑰呭拷鐣ワ級(jí)錛熶笅闈㈠皢緗楀垪鍑哄彲鑳界殑瑙e喅鏂規(guī)錛屽茍浠庤璁$悊蹇靛眰闈㈠榪欎簺涓嶅悓鐨勬柟妗堣繘琛屽垎鏋愩?br /><br />瑙e喅鏂規(guī)涓錛?br />綆鍗曠殑鍦―oor鐨勫畾涔変腑澧炲姞涓涓猘larm鏂規(guī)硶錛屽涓嬶細(xì)<br />abstract class Door {<br />abstract void open();<br />abstract void close()錛?br />abstract void alarm();<br />}<br />鎴栬?br />interface Door {<br />void open();<br />void close();<br />void alarm();<br />}<br /><br />閭d箞鍏鋒湁鎶ヨ鍔熻兘鐨凙larmDoor鐨勫畾涔夋柟寮忓涓嬶細(xì)<br /><br />class AlarmDoor extends Door {<br />void open() { 鈥?}<br />void close() { 鈥?}<br />void alarm() { 鈥?}<br />}<br />鎴栬?br />class AlarmDoor implements Door 锝?br />void open() { 鈥?}<br />void close() { 鈥?}<br />void alarm() { 鈥?}<br />锝?br />榪欑鏂規(guī)硶榪濆弽浜?jiǎn)闈㈠悜瀵硅薄璁捐涓殑涓涓牳蹇?jī)鍘熷垯ISP錛圛nterface Segregation Priciple錛夛紝鍦―oor鐨勫畾涔変腑鎶奃oor姒傚康鏈韓鍥烘湁鐨勮涓烘柟娉曞拰鍙﹀涓涓蹇墊姤璀﹀櫒鐨勮涓烘柟娉曟販鍦ㄤ簡(jiǎn)涓璧楓傝繖鏍峰紩璧風(fēng)殑涓涓棶棰樻槸閭d簺浠呬粎渚濊禆浜嶥oor榪欎釜姒傚康鐨勬ā鍧椾細(xì)鍥犱負(fù)鎶ヨ鍣ㄨ繖涓蹇電殑鏀瑰彉錛堟瘮濡傦細(xì)淇敼alarm鏂規(guī)硶鐨勫弬鏁幫級(jí)鑰屾敼鍙橈紝鍙嶄箣渚濈劧銆?br /><br />瑙e喅鏂規(guī)浜岋細(xì)<br />鏃㈢劧open銆乧lose鍜宎larm灞炰簬涓や釜涓嶅悓鐨勬蹇碉紝鏍規(guī)嵁ISP鍘熷垯搴旇鎶婂畠浠垎鍒畾涔夊湪浠h〃榪欎袱涓蹇電殑鎶借薄綾諱腑銆傚畾涔夋柟寮忔湁錛氳繖涓や釜姒傚康閮戒嬌鐢?abstract class鏂瑰紡瀹氫箟錛涗袱涓蹇甸兘浣跨敤interface鏂瑰紡瀹氫箟錛涗竴涓蹇典嬌鐢╝bstract class鏂瑰紡瀹氫箟錛屽彟涓涓蹇典嬌鐢╥nterface鏂瑰紡瀹氫箟銆?br /><br />鏄劇劧錛岀敱浜嶫ava璇█涓嶆敮鎸佸閲嶇戶(hù)鎵匡紝鎵浠ヤ袱涓蹇甸兘浣跨敤abstract class鏂瑰紡瀹氫箟鏄笉鍙鐨勩傚悗闈袱縐嶆柟寮忛兘鏄彲琛岀殑錛屼絾鏄浜庡畠浠殑閫夋嫨鍗村弽鏄犲嚭瀵逛簬闂棰嗗煙涓殑姒傚康鏈川鐨勭悊瑙c佸浜庤璁℃剰鍥劇殑鍙嶆槧鏄惁姝g‘銆佸悎鐞嗐傛垜浠竴涓鏉ュ垎鏋愩佽鏄庛?br /><br />濡傛灉涓や釜姒傚康閮戒嬌鐢╥nterface鏂瑰紡鏉ュ畾涔夛紝閭d箞灝卞弽鏄犲嚭涓や釜闂錛?銆佹垜浠彲鑳芥病鏈夌悊瑙f竻妤氶棶棰橀鍩燂紝AlarmDoor鍦ㄦ蹇墊湰璐ㄤ笂鍒板簳鏄?Door榪樻槸鎶ヨ鍣紵2銆佸鏋滄垜浠浜庨棶棰橀鍩熺殑鐞嗚В娌℃湁闂錛屾瘮濡傦細(xì)鎴戜滑閫氳繃瀵逛簬闂棰嗗煙鐨勫垎鏋愬彂鐜癆larmDoor鍦ㄦ蹇墊湰璐ㄤ笂鍜孌oor鏄竴鑷寸殑錛岄偅涔堟垜浠湪瀹炵幇鏃跺氨娌℃湁鑳藉姝g‘鐨勬彮紺烘垜浠殑璁捐鎰忓浘錛屽洜涓哄湪榪欎袱涓蹇電殑瀹氫箟涓婏紙鍧囦嬌鐢╥nterface鏂瑰紡瀹氫箟錛夊弽鏄犱笉鍑轟笂榪板惈涔夈?br /><br />濡傛灉鎴戜滑瀵逛簬闂棰嗗煙鐨勭悊瑙f槸錛欰larmDoor鍦ㄦ蹇墊湰璐ㄤ笂鏄疍oor錛屽悓鏃跺畠鏈夊叿鏈夋姤璀︾殑鍔熻兘銆傛垜浠濡備綍鏉ヨ璁°佸疄鐜版潵鏄庣‘鐨勫弽鏄犲嚭鎴戜滑鐨勬剰鎬濆憿錛熷墠闈㈠凡緇忚榪囷紝abstract class鍦↗ava璇█涓〃紺轟竴縐嶇戶(hù)鎵垮叧緋伙紝鑰岀戶(hù)鎵垮叧緋誨湪鏈川涓婃槸is a鍏崇郴銆傛墍浠ュ浜嶥oor榪欎釜姒傚康錛屾垜浠簲璇ヤ嬌鐢╝bstarct class鏂瑰紡鏉ュ畾涔夈傚彟澶栵紝AlarmDoor鍙堝叿鏈夋姤璀﹀姛鑳斤紝璇存槑瀹冨張鑳藉瀹屾垚鎶ヨ姒傚康涓畾涔夌殑琛屼負(fù)錛屾墍浠ユ姤璀︽蹇靛彲浠ラ氳繃interface鏂瑰紡瀹氫箟銆傚涓嬫墍紺猴細(xì)<br /><br />abstract class Door {<br />abstract void open();<br />abstract void close()錛?br />}<br />interface Alarm {<br />void alarm();<br />}<br />class AlarmDoor extends Door implements Alarm {<br />void open() { 鈥?}<br />void close() { 鈥?}<br />void alarm() { 鈥?}<br />}<br />榪欑瀹炵幇鏂瑰紡鍩烘湰涓婅兘澶熸槑紜殑鍙嶆槧鍑烘垜浠浜庨棶棰橀鍩熺殑鐞嗚В錛屾紜殑鎻ず鎴戜滑鐨勮璁℃剰鍥俱傚叾瀹瀉bstract class琛ㄧず鐨勬槸is a鍏崇郴錛宨nterface琛ㄧず鐨勬槸like a鍏崇郴錛屽ぇ瀹跺湪閫夋嫨鏃跺彲浠ヤ綔涓轟竴涓緷鎹紝褰撶劧榪欐槸寤虹珛鍦ㄥ闂棰嗗煙鐨勭悊瑙d笂鐨勶紝姣斿錛氬鏋滄垜浠涓篈larmDoor鍦ㄦ蹇墊湰璐ㄤ笂鏄姤璀﹀櫒錛屽悓鏃跺張鍏鋒湁 Door鐨勫姛鑳斤紝閭d箞涓婅堪鐨勫畾涔夋柟寮忓氨瑕佸弽榪囨潵浜?jiǎn)銆?br />緇撹<br />abstract class鍜宨nterface鏄疛ava璇█涓殑涓ょ瀹氫箟鎶借薄綾葷殑鏂瑰紡錛屽畠浠箣闂存湁寰堝ぇ鐨勭浉浼兼с備絾鏄浜庡畠浠殑閫夋嫨鍗村張寰寰鍙嶆槧鍑哄浜庨棶棰橀鍩熶腑鐨勬蹇墊湰璐ㄧ殑鐞嗚В銆佸浜庤璁℃剰鍥劇殑鍙嶆槧鏄惁姝g‘銆佸悎鐞嗭紝鍥犱負(fù)瀹冧滑琛ㄧ幇浜?jiǎn)姒傚康闂寸殑涓嶅悓鐨勫叧绯诲Q堣櫧鐒墮兘鑳藉瀹炵幇闇姹傜殑鍔熻兘錛夈傝繖鍏跺疄涔熸槸璇█鐨勪竴縐嶇殑鎯敤娉曪紝甯屾湜璇昏呮湅鍙嬭兘澶熺粏緇嗕綋浼?xì)銆?br /><br />寰堝浜烘湁榪囪繖鏍風(fēng)殑鐤戦棶錛氫負(fù)浠涔堟湁鐨勫湴鏂瑰繀欏諱嬌鐢ㄦ帴鍙h屼笉鏄娊璞$被錛岃屽湪鍙︿竴浜涘湴鏂癸紝鍙堝繀欏諱嬌鐢ㄦ娊璞$被鑰屼笉鏄帴鍙e憿錛熸垨鑰呰錛屽湪鑰冭檻Java綾葷殑涓鑸寲闂鏃訛紝寰堝浜轟細(xì)鍦ㄦ帴鍙e拰鎶借薄綾諱箣闂寸姽璞笉鍐籌紝鐢氳嚦闅忎究閫夋嫨涓縐嶃?br /><br />銆銆瀹為檯涓婃帴鍙e拰鎶借薄綾葷殑閫夋嫨涓嶆槸闅忓績(jī)鎵嬈茬殑銆?瑕佺悊瑙f帴鍙e拰鎶借薄綾葷殑閫夋嫨鍘熷垯錛屾湁涓や釜姒傚康寰堥噸瑕侊細(xì)瀵硅薄鐨勮涓哄拰瀵硅薄鐨勫疄鐜般傚鏋滀竴涓疄浣撳彲浠ユ湁澶氱瀹炵幇鏂瑰紡錛屽垯鍦ㄨ璁″疄浣撹涓虹殑鎻忚堪鏂瑰紡鏃訛紝搴斿綋杈懼埌榪欐牱涓涓洰鏍囷細(xì)鍦ㄤ嬌鐢ㄥ疄浣撶殑鏃跺欙紝鏃犻渶璇︾粏浜?jiǎn)瑙e疄浣撹湄?fù)鐨勫疄鐜版柟寮忋備篃灝辨槸璇達(dá)紝瑕佹妸瀵硅薄鐨勮涓哄拰瀵硅薄鐨勫疄鐜板垎紱誨紑鏉ャ傛棦鐒禞ava鐨勬帴鍙e拰鎶借薄綾婚兘鍙互瀹氫箟涓嶆彁渚涘叿浣撳疄鐜扮殑鏂規(guī)硶錛屽湪鍒嗙瀵硅薄鐨勮涓哄拰瀵硅薄鐨勫疄鐜版椂錛屽埌搴曞簲璇ヤ嬌鐢ㄦ帴鍙h繕鏄嬌鐢ㄦ娊璞$被鍛紵<br /><br />閫氳繃鎶借薄綾誨緩绔嬭涓烘ā鍨?br /><br />銆銆鍦ㄦ帴鍙e拰鎶借薄綾葷殑閫夋嫨涓婏紝蹇呴』閬靛畧榪欐牱涓涓師鍒欙細(xì)琛屼負(fù)妯″瀷搴旇鎬繪槸閫氳繃鎺ュ彛鑰屼笉鏄娊璞$被瀹氫箟銆備負(fù)浜?jiǎn)璇存槑鍏跺師鍥犲Q屼笅闈㈣瘯鐫閫氳繃鎶借薄綾誨緩绔嬭涓烘ā鍨嬶紝鐪嬬湅浼?xì)鍑虹庮C粈涔堥棶棰樸?br /><br />銆銆鍋囪瑕佷負(fù)閿鍞儴闂ㄨ璁′竴涓蔣浠訛紝榪欎釜杞歡鍖呭惈涓涓滃彂鍔ㄦ満鈥濓紙Motor錛夊疄浣撱傛樉鐒舵棤娉曞湪鍙戝姩鏈哄璞′腑璇︾粏鍦版弿榪板彂鍔ㄦ満鐨勬柟鏂歸潰闈紝鍙兘鎻忚堪鏌愪簺瀵瑰綋鍓嶈蔣浠舵潵璇撮噸瑕佺殑鐗瑰緛銆傝嚦浜庡彂鍔ㄦ満鐨勫摢浜涚壒寰佹槸閲嶈鐨勶紝鍒欒涓庣敤鎴鳳紙閿鍞儴闂級(jí)浜ゆ祦鎵嶈兘紜畾銆?br /><br />銆銆閿鍞儴闂ㄧ殑浜鴻姹傛瘡涓涓彂鍔ㄦ満閮芥湁涓涓О涓洪┈鍔涚殑鍙傛暟銆傚浜庝粬浠潵璇達(dá)紝榪欐槸鎯熶竴鍊煎緱鍏沖績(jī)鐨勫弬鏁般傚熀浜庤繖涓鍒ゆ柇錛屽彲浠ユ妸鍙戝姩鏈虹殑琛屼負(fù)瀹氫箟涓轟互涓嬭涓恒?br /><br />銆銆琛屼負(fù)1錛氭煡璇㈠彂鍔ㄦ満鐨勯┈鍔涳紝鍙戝姩鏈哄皢榪斿洖涓涓〃紺洪┈鍔涚殑鏁存暟銆?br /><br />銆銆铏界劧鐜板湪榪樹(shù)笉娓呮鍙戝姩鏈哄浣曞彇寰楅┈鍔涜繖涓弬鏁幫紝浣嗗彲浠ヨ偗瀹氬彂鍔ㄦ満涓瀹氭敮鎸佽繖涓涓猴紝鑰屼笖榪欐槸鎵鏈夊彂鍔ㄦ満鎯熶竴鍊煎緱鍏蟲(chóng)敞鐨勮涓虹壒寰併傝繖涓涓虹壒寰佹棦鍙互鐢ㄦ帴鍙e畾涔夛紝涔熷彲浠ョ敤鎶借薄綾誨畾涔夈備負(fù)浜?jiǎn)璇存槑鐢ㄦ娊璞【c誨畾涔夊彲鑳藉嚭鐜扮殑闂錛屼笅闈㈢敤鎶借薄綾誨緩绔嬪彂鍔ㄦ満鐨勮涓烘ā鍨嬶紝騫剁敤Java鏂規(guī)硶鎻忚堪琛屼負(fù)1錛屼唬鐮佸涓嬶細(xì)<br /><br />public abstract Motor{<br /><br />abstract public int getHorsepower();<br /><br />}<br /><br />銆銆鍦∕otor鎶借薄綾葷殑鍩虹涓婃瀯閫犲嚭澶氱鍏蜂綋瀹炵幇錛屼緥濡侫鍨嬪彂鍔ㄦ満銆丅鍨嬪彂鍔ㄦ満絳夛紝鍐嶅姞涓婄郴緇熺殑鍏跺畠閮ㄥ垎錛屾渶鍚庡緱鍒?.0鐗堢殑杞歡騫朵氦浠樹(shù)嬌鐢ㄣ備竴孌墊椂闂磋繃鍘諱簡(jiǎn)錛岀幇鍦ㄨ璁捐2.0鐗堢殑杞歡銆傚湪璇勪及2.0鐗堣蔣浠墮渶姹傜殑榪囩▼涓紝鍙戠幇涓灝忛儴鍒嗗彂鍔ㄦ満鏄數(shù)姹犻┍鍔ㄧ殑錛岃岀數(shù)姹犻渶瑕佷竴瀹氱殑鍏呯數(shù)鏃墮棿銆傞攢鍞儴闂ㄧ殑浜哄笇鏈涜兘澶熼氳繃璁$畻鏈烘煡闃呭厖鐢墊椂闂淬傛牴鎹繖涓瑕佹眰瀹氫箟涓涓柊鐨勮涓猴紝濡傚浘1鎵紺恒?br /><br />銆銆琛屼負(fù)2錛氭煡璇㈢數(shù)椹卞姩鍙戝姩鏈虹殑鍏呯數(shù)鏃墮棿錛屽彂鍔ㄦ満灝嗚繑鍥炰竴涓〃紺哄厖鐢墊椂闂寸殑鏁存暟銆?br /><br />銆銆鐢↗ava鏂規(guī)硶鏉ユ弿榪拌繖涓涓猴紝浠g爜濡備笅錛?br /><br />public abstract BatteryPoweredMotor extends Motor{<br /><br />abstract public int getTimeToRecharge();<br /><br />}<br /><br />銆銆鍦ㄩ攢鍞儴闂ㄧ殑杞歡涓紝鐢?shù)椹卞姩鍙戝姩鏈轰篃浠ゾc葷殑褰㈠紡瀹炵幇錛屼絾榪欎簺綾諱粠BatteryPoweredMotor鑰屼笉鏄疢otor媧劇敓銆傝繖浜涙敼鍔ㄥ姞鍏ュ埌2.0鐗堣蔣浠朵箣鍚庯紝閿鍞儴闂ㄥ緢婊℃剰銆傞殢鐫涓氬姟鐨勪笉鏂彂灞曪紝涓嶄箙涔嬪悗鍏夐┍鍔ㄧ殑鍙戝姩鏈哄嚭鐜頒簡(jiǎn)銆傞攢鍞儴闂ㄨ姹傚厜椹卞姩鍙戝姩鏈洪渶瑕佷竴瀹氬厜鑳芥墠鑳借繍杞紝鍏夎兘浠ユ祦鏄庯紙Lumen錛夊害閲忋傝繖涓俊鎭瀹㈡埛寰堥噸瑕侊紝鍥犱負(fù)涓嬮洦鎴栧浜戠殑澶╂皵閲岋紝鏌愪簺鍏夐┍鍔ㄥ彂鍔ㄦ満鍙兘鏃犳硶榪愯漿銆傞攢鍞儴闂ㄨ姹備負(fù)杞歡澧炲姞瀵瑰厜椹卞姩鍙戝姩鏈虹殑鏀寔錛屾墍浠ヨ瀹氫箟涓涓柊鐨勮涓恒?br /><br />銆銆琛屼負(fù)3錛氭煡璇㈠厜椹卞姩鍙戝姩鏈鴻兘澶熸甯歌繍杞墍闇瑕佺殑鏈灝忔祦鏄庢暟錛屽彂鍔ㄦ満榪斿洖涓涓暣鏁般?br /><br />銆銆鍐嶅畾涔変竴涓娊璞$被騫舵妸琛屼負(fù)3杞崲鎴怞ava鏂規(guī)硶錛屼唬鐮佸涓嬶細(xì)<br /><br />public abstract SolarPoweredMotor extends Motor{<br /><br />abstract public int getLumensToOperate();<br /><br />}<br /><br />銆銆濡傚浘1鎵紺猴紝SolarPoweredMotor鍜孊atteryPoweredMotor閮戒粠Motor鎶借薄綾繪淳鐢熴傚湪鏁翠釜杞歡涓紝90錛呬互涓婄殑浠g爜浠ョ浉鍚岀殑鏂瑰紡瀵瑰緟鎵鏈夌殑鍙戝姩鏈恒傚伓灝?dāng)闇瑕佹鏌ヤ竴涓嬪彂鍔ㄦ満鏄厜椹卞姩榪樻槸鐢?shù)椹卞姩锛屼娇鐢╥nstanceof瀹炵幇錛屼唬鐮佸涓嬶細(xì)<br /><br />[color=#336600]<br /><br />if (instanceof SolarPoweredMotor){...}<br /><br />if (instanceof BatteryPoweredMotor){...}<br /><br />銆銆鏃犺鏄摢縐嶅彂鍔ㄦ満錛岄┈鍔涜繖涓弬鏁伴兘寰堥噸瑕侊紝鎵浠ュ湪鎵鏈夋淳鐢熺殑鎶借薄綾伙紙SolarPoweredMotor鍜孊atteryPoweredMotor錛変腑錛実etHorsepower()鏂規(guī)硶閮芥湁鏁堛?br /><br />銆銆鐜板湪閿鍞儴闂ㄥ張鏈変簡(jiǎn)涓縐嶆柊鐨勫彂鍔ㄦ満錛屽畠鏄竴縐嶆棦鏈夌數(shù)椹卞姩鍙堟湁鍏夐┍鍔ㄧ殑鍙岄噸椹卞姩鍙戝姩鏈恒傚厜椹卞姩鍜岀數(shù)椹卞姩鐨勮涓烘湰韜病鏈夊彉鍖栵紝浣嗘柊鐨勫彂鍔ㄦ満鍚屾椂鏀寔涓ょ琛屼負(fù)銆傚湪鑰冭檻濡備綍瀹氫箟鏂板瀷鐨勫厜鐢?shù)椹卞姩鍙戝姩鏈烘椨灱屾帴鍙e拰鎶借薄绫荤殑宸埆寮濮嬫樉紺哄嚭鏉ヤ簡(jiǎn)銆傛柊鐨勭洰鏍囨槸鍦ㄥ鍔犳柊鍨嬪彂鍔ㄦ満鐨勫墠鎻愪笅灝介噺灝戞敼鍔ㄤ唬鐮併傚洜涓轟笌鍏夐┍鍔ㄥ彂鍔ㄦ満銆佺數(shù)椹卞姩鍙戝姩鏈烘湁鍏崇殑浠g爜宸茬粡榪囧叏闈㈢殑嫻嬭瘯錛屼笉瀛樺湪宸茬煡鐨凚ug銆備負(fù)浜?jiǎn)澧炲姞鍏夌數(shù)椹卞姩鍙戝姩鏈哄Q岃瀹氫箟涓涓柊鐨凷olarBatteryPowered鎶借薄綾匯傚鏋滆SolarBatteryPowered浠嶮otor鎶借薄綾繪淳鐢燂紝SolarBatteryPowered灝嗕笉鏀寔閽堝鍏夐┍鍔ㄥ彂鍔ㄦ満鍜岀數(shù)椹卞姩鍙戝姩鏈虹殑instanceof鎿嶄綔銆備篃灝辨槸璇達(dá)紝濡傛灉鏌ヨ涓涓厜鐢?shù)椹卞姩鐨勫彂鍔ㄦ満鏄厜椹卞姩鐨勫Q岃繕鏄數(shù)椹卞姩鐨勶紝寰楀埌鐨勭瓟妗堟槸錛氶兘涓嶆槸銆?br /><br />銆銆濡傛灉璁?SolarBatteryPowered浠嶴olarPoweredMotor錛堟垨BatteryPoweredMotor錛夋娊璞$被媧劇敓錛岀被浼肩殑闂?shù)篃浼?xì)鍑虹幇錛孲olarBatteryPowered灝嗕笉鏀寔閽堝BatteryPoweredMotor錛堟垨SolarPoweredMotor錛夌殑 instanceof鎿嶄綔銆備粠琛屼負(fù)涓婄湅錛屽厜鐢?shù)椹卞姩鐨勫彂鍔ㄦ満蹇厵逭d悓鏃朵粠涓や釜鎶借薄綾繪淳鐢燂紝浣咼ava璇█涓嶅厑璁稿閲嶇戶(hù)鎵褲備箣鎵浠ヤ細(xì)鍑虹幇榪欎釜闂錛屾牴鏈殑鍘熷洜鍦ㄤ簬浣跨敤鎶借薄綾諱笉浠呮剰鍛崇潃瀹氫箟鐗瑰畾鐨勮涓猴紝鑰屼笖鎰忓懗鐫瀹氫箟瀹炵幇鐨勬ā寮忋備篃灝辨槸璇達(dá)紝搴旇瀹氫箟涓涓彂鍔ㄦ満濡備綍鑾峰緱琛屼負(fù)鐨勬ā鍨嬶紝鑰屼笉浠呬粎鏄0鏄庡彂鍔ㄦ満鍏鋒湁鏌愪竴涓涓恒?br /><br />閫氳繃鎺ュ彛寤虹珛琛屼負(fù)妯″瀷<br /><br />銆銆濡傛灉鐢ㄦ帴鍙f潵寤虹珛琛屼負(fù)妯″瀷錛屽氨鍙互閬垮厤闅愬惈鍦拌瀹氬疄鐜版ā寮忋備緥濡傦紝鍓嶉潰鐨勫嚑涓涓烘敼鐢ㄦ帴鍙e畾涔夊涓嬨?br /><br />銆銆琛屼負(fù)1錛?br /><br />public interface Motor(){<br /><br />public int getHorsepower();<br /><br />}<br /><br />琛屼負(fù)2錛?br /><br />public interface BatteryPoweredMotor extends Motor(){<br /><br />public int getTimeToRecharge();<br /><br />}<br /><br />琛屼負(fù)3錛?br /><br />public interface SolarPoweredMotor extends Motor{<br /><br />abstract public int getLumensToOperate();<br /><br />}<br /><br />銆銆鐜板湪鍏夌數(shù)椹卞姩鐨勫彂鍔ㄦ満鍙互鎻忚堪涓猴細(xì)<br />public DualPoweredMotor implements SolarPoweredMotor, BatteryPoweredMotor{}<br /><br />銆銆DualPoweredMotor鍙戶(hù)鎵胯涓哄畾涔夛紝鑰屼笉鏄涓虹殑瀹炵幇妯″紡錛屽鍥?鎵紺恒?br /><br />銆銆鍦ㄤ嬌鐢ㄦ帴鍙g殑鍚屾椂浠嶆棫鍙互浣跨敤鎶借薄綾伙紝涓嶈繃榪欐椂鎶借薄綾葷殑浣滅敤鏄疄鐜拌涓猴紝鑰屼笉鏄畾涔夎涓恒傚彧瑕佸疄鐜拌涓虹殑綾婚伒浠庢帴鍙e畾涔夛紝鍗充嬌瀹冩敼鍙樹(shù)簡(jiǎn)鐖舵娊璞$被錛屼篃涓嶇敤鏀瑰彉鍏跺畠浠g爜涓庝箣浜や簰鐨勬柟寮忋傜壒鍒槸瀵逛簬鍏敤鐨勫疄鐜頒唬鐮侊紝鎶借薄綾繪湁瀹冪殑浼樼偣銆傛娊璞$被鑳藉淇濊瘉瀹炵幇鐨勫眰嬈″叧緋伙紝閬垮厤浠g爜閲嶅銆傜劧鑰岋紝鍗充嬌鍦ㄤ嬌鐢ㄦ娊璞$被鐨勫満鍚堬紝涔熶笉瑕佸拷瑙嗛氳繃鎺ュ彛瀹氫箟琛屼負(fù)妯″瀷鐨勫師鍒欍備粠瀹炶返鐨勮搴︽潵鐪嬶紝濡傛灉渚濊禆浜庢娊璞$被鏉ュ畾涔夎涓猴紝寰寰瀵艱嚧榪囦簬澶嶆潅鐨勭戶(hù)鎵垮叧緋伙紝鑰岄氳繃鎺ュ彛瀹氫箟琛屼負(fù)鑳藉鏇存湁鏁堝湴鍒嗙琛屼負(fù)涓庡疄鐜幫紝涓轟唬鐮佺殑緇存姢鍜屼慨鏀瑰甫鏉ユ柟渚褲?img src ="http://m.tkk7.com/jsdk999/aggbug/71274.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/jsdk999/" target="_blank">WindDC</a> 2006-09-22 11:32 <a href="http://m.tkk7.com/jsdk999/archive/2006/09/22/71274.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://mmstom.com" target="_blank">亚洲欧洲日产国码在线观看</a>| <a href="http://nsmtv.com" target="_blank">精品一区二区三区无码免费直播</a>| <a href="http://www-xg5777.com" target="_blank">国产精品久久永久免费</a>| <a href="http://52xingai.com" target="_blank">亚洲日韩亚洲另类激情文学</a>| <a href="http://wwwabxx.com" target="_blank">亚洲国产精品综合久久一线</a>| <a href="http://www00475.com" target="_blank">久久国产精品免费看</a>| <a href="http://xmllhb.com" target="_blank">亚洲国产精品无码第一区二区三区</a>| <a href="http://ikybh.com" target="_blank">亚洲愉拍99热成人精品热久久 </a>| <a href="http://ivy-fund.com" target="_blank">免费萌白酱国产一区二区三区</a>| <a href="http://xyhfloor.com" target="_blank">亚洲美女在线观看播放</a>| <a href="http://lzhuiding.com" target="_blank">四虎影永久在线高清免费</a>| <a href="http://klno1.com" target="_blank">99久久久国产精品免费牛牛四川</a>| <a href="http://huakangweicai.com" target="_blank">亚洲日本VA午夜在线影院</a>| <a href="http://zz773.com" target="_blank">亚洲AV无码一区二区二三区软件</a>| <a href="http://18736374.com" target="_blank">在线成人a毛片免费播放</a>| <a href="http://0888qb.com" target="_blank">最近的2019免费中文字幕</a>| <a href="http://lawelites.com" target="_blank">亚洲国产精品无码久久九九大片 </a>| <a href="http://www99xyxy.com" target="_blank">国产免费女女脚奴视频网</a>| <a href="http://87fulitv.com" target="_blank">牛牛在线精品免费视频观看</a>| <a href="http://ahtxjk.com" target="_blank">亚洲邪恶天堂影院在线观看</a>| <a href="http://xjtuykw.com" target="_blank">成人亚洲综合天堂</a>| <a href="http://yisaoma.com" target="_blank">国产在线观看片a免费观看</a>| <a href="http://liangdy.com" target="_blank">a级成人毛片免费视频高清</a>| <a href="http://ztxfkj.com" target="_blank">久久精品国产亚洲av瑜伽</a>| <a href="http://69ct.com" target="_blank">精品亚洲成AV人在线观看</a>| <a href="http://jnyygs.com" target="_blank">亚洲精品国产福利一二区</a>| <a href="http://zxzzzzx.com" target="_blank">成人黄动漫画免费网站视频 </a>| <a href="http://junyehome.com" target="_blank">国产精品极品美女自在线观看免费 </a>| <a href="http://wwwff113.com" target="_blank">免费一级毛片清高播放</a>| <a href="http://okgou58.com" target="_blank">国产精品爱啪在线线免费观看</a>| <a href="http://9981tv.com" target="_blank">国产精品免费在线播放</a>| <a href="http://imfever.com" target="_blank">国产亚洲成在线播放va</a>| <a href="http://0917xzb.com" target="_blank">日韩亚洲国产综合高清</a>| <a href="http://bbav04.com" target="_blank">久久亚洲私人国产精品vA</a>| <a href="http://ebanyou.com" target="_blank">在线观看国产区亚洲一区成人</a>| <a href="http://eddiekidd.com" target="_blank">免费观看一级毛片</a>| <a href="http://spxingyiquan.com" target="_blank">999在线视频精品免费播放观看</a>| <a href="http://783944.com" target="_blank">午夜精品一区二区三区免费视频</a>| <a href="http://225ck.com" target="_blank">fc2成年免费共享视频网站</a>| <a href="http://chuadang.com" target="_blank">亚洲av永久中文无码精品</a>| <a href="http://fenxue520.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>