锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产午夜精品理论片在线播放 ,avtt天堂网手机版亚洲,亚洲综合熟女久久久30phttp://m.tkk7.com/mark1207/category/30107.htmlMyEclipse, Java EE, Spring, Struts, Hibernate, JPA, SWT, Swing, AJAX, JavaScript,SOAzh-cnSat, 12 Apr 2008 14:20:05 GMTSat, 12 Apr 2008 14:20:05 GMT60錛堣漿錛夈婂垎鏋愭ā寮忥細鍙噸鐢ㄥ璞℃ā鍨嬨?- 璐d換妯″紡(party)http://m.tkk7.com/mark1207/archive/2008/04/01/190072.htmlMarkMarkTue, 01 Apr 2008 06:35:00 GMThttp://m.tkk7.com/mark1207/archive/2008/04/01/190072.htmlhttp://m.tkk7.com/mark1207/comments/190072.htmlhttp://m.tkk7.com/mark1207/archive/2008/04/01/190072.html#Feedback0http://m.tkk7.com/mark1207/comments/commentRss/190072.htmlhttp://m.tkk7.com/mark1207/services/trackbacks/190072.html1          璐d換妯″紡

榪欎竴绔犲叧娉ㄧ殑閲嶇偣鏄?strong>鍏崇郴錛屼互鍙婃庢牱涓洪敊緇煎鏉傜殑鍏崇郴寤虹珛妯″瀷錛屽彟澶栵紝鎵鏈夌殑鎻掑浘閮芥潵鑷師涔︼紙銆?/span>Analysis Patterns錛?/span>Reusable Object Models銆嬶級錛屽茍閬靛驚UML鏍囧噯銆?/span>

1.1    Party妯″紡

鍦ㄨ繖涓绔犱腑錛岄鍏堟垜浠帴瑙﹀埌鏄槸Party妯″紡錛屽湪榪涜緋葷粺鍒嗘瀽鍜屾蹇墊ā鍨嬭璁$殑鏃跺欙紝緇忓父鍙戠幇浜哄拰鍚勭鍚勬牱鐨勭粍緇囨湁鐫鍚屾牱鐨勮涓?/em>錛屼緥濡傦紝鍥哄畾鐢佃瘽鐨勮璐瑰彲鑳芥槸閽堝涓漢錛屼篃鍙兘鏄竴涓崟浣嶏紱闇瑕佸悇縐嶆湇鍔$殑鏃跺欙紝浣犲彲鑳芥眰鍔╀簬涓涓湇鍔″叕鍙革紝鎴栬呮湇鍔″叕鍙鎬竴涓壒瀹氱殑涓氬姟鍛樸傛諱箣錛屽洜涓轟漢錛?strong>Person錛夊拰緇勭粐錛?/span>Organization錛夎〃鐜頒笂鐨勪竴鑷存э紝濡備笅鍥炬墍瑙侊紝鎴戜滑浠庝腑鎶借薄鍑?/span>Party錛屼綔涓?/span>Person鍜?/span>Organization鐨勬娊璞$埗綾匯?/span>

1.2    緇勭粐錛?/span>Organization錛夌殑鍐呴儴緇撴瀯

絎簩姝ワ紝濡傛灉鎴戜滑鎶婃敞鎰忓姏杞Щ鍒扮粍緇囷紙Organization錛夌殑鍐呴儴緇撴瀯錛屽氨浼氬彂鐜頒竴浜涙湁瓚g殑闂錛岄氬父鏈甯歌鐨勪竴縐嶇粨鏋勬槸閲戝瓧濉旂粨鏋勶紝鍥犳寤烘ā鏃跺彲鑳芥寜鐓ц繖鏍風殑緇撴瀯寤虹珛綰挎х殑妯″瀷錛屼緥濡傦細

榪欐牱鐨勬ā鍨嬪茍娌℃湁閿欒錛屼絾鏄湁緙洪櫡錛岄鍏堜笉鑳芥弧瓚蟲瘮杈冨鏉傜殑緇勭粐鍏崇郴錛屾洿涓ラ噸鐨勬槸錛屼竴鏃?strong>闇瑕佹洿澶氱殑灞傛鍏崇郴錛屼緥濡傚瓨鍦ㄩ儴闂ㄧ洿鎺ヤ笂涓嬬駭鍏崇郴浠ュ強鍖哄煙闄勫睘綆$悊鏂瑰紡錛屽繀灝嗗紩璧鋒暣涓ā鍨嬬殑鏇存敼錛屽緋葷粺鐨勫獎鍝嶅彲鎯寵岀煡錛屽湪榪欑鎯呭喌涓嬶紝鏈閫氬父鐨勬敼榪涙帾鏂芥槸寮曞叆灞傛鍏崇郴錛屽涓嬪浘鎵紺猴細

閫氳繃澧炲姞鏂扮殑鍏寵仈鍏崇郴錛屽彲浠ョ伒媧誨疄鐜扮粍緇囷紙Organization錛変箣闂寸殑鍚勭鍏崇郴浠ュ強鍙兘鐨勫彉鍖栥傚湪涓婂浘涓紝{hierarchy}鏄竴涓害鏉燂紙constraint錛夋潵闄愬畾鍏崇郴銆?/span>

1.3        緇勭粐鍏崇郴鎶借薄

絎笁姝ワ紝鍦ㄤ竴鑸殑鎯呭喌涓嬶紝浠ヤ笂鐨勬ā寮忓凡緇忚凍澶熻В鍐抽棶棰橈紝浣嗗綋榪欐牱鐨勫眰嬈″拰緇勭粐鍏崇郴寰堝鑰屼笖澶嶆潅鏃訛紙瓚呰繃涓ょ錛夛紝渚嬪鐜板湪嫻佽鐨勭煩闃電鐞嗭紝灝卞彲浠ュ皢鍏崇郴鏈韓鎶藉彇鍑烘潵鐙珛澶勭悊錛屽涓嬪浘鎵紺猴紝浣滆呮鏃惰冭檻鍒扮粍緇囩粨鏋勭殑鏈夋晥鏃舵錛屾墍浠ュ姞鍏ヤ簡涓涓椂闂存灞炴ф潵璁板綍緇勭粐緇撴瀯鐨勫瓨鍦ㄦ椂闂淬?/p>

璇鋒敞鎰忥紝鍦ㄨ繖涓ā寮忎腑錛?/span>Organization Structure鎵嶆槸妯″紡鐨勬牳蹇冿紝鍦ㄧ郴緇熶腑錛岀敱涓や釜Organization鐨勫疄渚嬶紙鍒嗗埆鍏呭綋parent鍜?/span>subsidiary錛夛紝浠ュ強涓涓?/span>Type瀹炰緥鏉ヨ鏄庤緇撴瀯鐨勭被鍨嬨傚湪榪欐牱鐨勭粨鏋勪腑錛屽彲鑳藉瓨鍦ㄨ澶氱殑瑙勫垯錛?strong>Rule錛夛紝榪欎簺瑙勫垯鍙互鏍規嵁鎯呭喌鍒嗗埆澶勭悊錛氬鏋?/span>Type寰堝錛岃屼笖瑙勫垯涓昏璺?/span>Type鏈夊叧錛屽氨鍒嗛厤緇欎笌Type鐩稿叧鑱旓紱濡傛灉Type騫朵笉澶氾紝浣嗕富瑕佹牴鎹?/span>Organization鐨勫瓙綾誨瀷鍙樺寲錛屽氨鍙互鍒嗗竷鍒?/span>Organization鐨勫瓙綾誨瀷涓?/span>

1.4    璐d換錛圓ccountability錛夋ā寮?/span>

絎洓姝ワ紝浠庣涓姝ョ湅鍒幫紝Party鏄?strong>Person鍜?/span>Organization鐨勬娊璞$埗綾伙紝鍥犳鎶?/span>Party浠e叆涓婇潰鐨勬ā寮忥紙鏈夌偣璞℃垜浠皬鏃朵警浠f暟閲屽父鐢ㄧ殑浠e叆錛夛紝姝e紡褰㈡垚璐d換錛?/span>Accountability錛夋ā寮忋?/span>

1.5    鐭ヨ瘑灞傦紙Knowledge level錛夊拰鎿嶄綔灞傦紙Operational level錛夊垎紱?

鍑虹幇榪欐牱涓縐嶆兂娉曟槸鑰冭檻鍒頒互涓嬫儏鍐碉細褰?/span>Accountablity Type鐨勬暟閲忔瘮Accountability鐨勬暟閲忓寰堝鐨勬椂鍊欙紝澶勭悊Accountablity Type鐨勮鍒欎篃鍙樺緱鏇翠負澶嶆潅錛岃瑙e喅榪欐牱鐨勯棶棰橈紝灝卞彲浠ュ紩鍏ョ煡璇嗗眰鍜屾搷浣滃眰鐨勫垎紱匯?/span>

鐢變笅鍥懼彲瑙侊紝鐢ㄨ櫄綰塊殧紱誨紑鐨勶紝灝辨槸鐭ヨ瘑灞傦紙Knowledge level錛夊拰鎿嶄綔灞傦紙Operational level錛夛紝鍦ㄨ繖涓ā鍨嬩腑錛岀煡璇嗗眰錛?/span>Knowledge level錛夌敱涓変釜綾誨崗浣滃畬鎴愶紝瀹冧滑鍒嗗埆鏄?/span>Accountablity Type銆?/span>Connection Rule銆?/span>Party Type錛屽湪Connection Rule涓畾涔夊悎娉曠殑Party鍏崇郴瑙勫垯錛屽茍閫氳繃Accountablity Type瀵?/span>Accountablity榪涜鍒涘緩鏃剁殑鍚堟硶鎬ф楠屻傚畠鐨勫彟涓涓ソ澶勫氨鏄紝鍙互灝嗙煡璇嗗眰鐨勫疄渚嬪寲鐙珛鍑烘潵錛屼綔涓烘搷浣滃眰錛?/span>Operational level錛夎繍琛屾椂鐨勯厤緗紱鎹㈠彞璇濊錛屽綋鐭ヨ瘑灞傜殑瑙勫垯鏀瑰彉鏃訛紝緋葷粺鐨勮涓哄皢琚敼鍙橈紝鑰屼笉闇瑕佷換浣曞叾浠栦唬鐮佺殑鏀瑰姩錛岃繖褰撶劧鏄竴縐嶆瘮杈冪悊鎯沖寲鐨勬儏鍐點?/span>

 

鐢辨鎯沖埌錛屾瀯寤轟笓瀹剁郴緇熺殑璁捐鎬濊礬涔熷彲浠ヤ粠榪欎釜妯″紡寰楀埌涓浜涘惎鍙戯紝榪欐槸絎旇呬竴鏃剁殑鎰熻Е銆?/p>

鍦ㄥ師涔︿腑錛屽浣曞疄鐜拌繖鏍風殑妯″瀷鎻愬緱姣旇緝妯$硦錛屼絾鏄瑪鑰呰涓猴紝鍙互灝嗗畠浠綔涓烘甯哥殑妯″瀷鏉ュ疄鐜幫紝涓や釜灞傛鐨勫尯鍒嗗彧鏄〃鏄庡畠浠悇鑷媴璐熺殑浠誨姟鍜屽湴浣嶄笉鍚屻傜煡璇嗗眰鍊懼悜浜庢弿榪扮郴緇熷彲鑳藉瓨鍦ㄧ殑鍚勭褰㈠紡錛屽茍璁懼畾鍒ゆ柇緋葷粺鏄惁鏈夋晥鐨勫悇縐嶈鍒欙紱鎿嶄綔灞傚垯鎻忚堪鍦ㄨ繖鏍風殑閰嶇疆涓嬬郴緇熷疄闄呯殑琛屼負銆傞氳繃鏀瑰彉鍐呭湪鐨勯厤緗潵鏀瑰彉澶栧湪鐨勮涓猴紝灝辨槸榪欎釜妯″紡鐨勭洰鐨勩?/p>

鐢變簬榪欎釜妯″紡鐨勭壒鐐癸紝鏀瑰彉緋葷粺琛屼負鏃朵笉蹇呮洿鏀規搷浣滃眰鐨勪唬鐮侊紝浣嗘槸錛屽茍涓嶆剰鍛崇潃鏀瑰彉緋葷粺琛屼負榪炴祴璇曚篃涓嶅繀瑕佸仛銆傚悓鏍鳳紝涔熼渶瑕佽皟璇曘侀厤緗鐞嗐?/p>

浣滆呬篃鎻愬埌錛岃繖鏍風殑妯″紡鐢ㄨ搗鏉ュ茍涓嶈交鏉撅紝鐢氳嚦鍦ㄤ竴鑸殑緋葷粺涓篃涓嶅繀瑕侊紝浣嗗綋浣犲彂鐜版湁蹇呰鐢ㄥ畠鐨勬椂鍊欙紝鍒姽璞紙鎰熻璞$敤闄嶈惤浼炰竴鏍鳳級錛?/p>

1.6        灝忕粨

浠庣畝鍗曞埌澶嶆潅錛屽墠闈㈠垎浜旀浠嬬粛浜嗛傜敤浜庤В鍐?/span>Party鍙婂叾鍏崇郴鐨勫悇縐嶆ā寮忥紝姣忕鎺ㄨ崘鐨勬ā寮忛兘鏈夊叾琛ㄧ幇鐨勬満浼氾紝甯屾湜鎴戣繖綃囨枃绔犲彲浠ヨ搗鍒頒竴浜涙姏鐮栧紩鐜夌殑浣滅敤錛屽茍嬈㈣繋澶у瀵瑰叾涓殑閿欒榪涜鎸囨錛屾榪庡彂琛ㄦ剰瑙侊紝榪涜浜ゆ祦銆?/span>

鍘熸枃鍙傜収銆?/span>Analysis Patterns錛?/span>Reusable Object Models銆嬶紝Chapter 2錛?/span>Martin Fowler


鍘熸枃錛?a >http://blog.csdn.net/nzh_csdn/archive/2004/12/19/221484.aspx

Mark 2008-04-01 14:35 鍙戣〃璇勮
]]>
瑙傚療鑰呮ā寮忥紙浜岋級http://m.tkk7.com/mark1207/archive/2008/03/18/187004.htmlMarkMarkTue, 18 Mar 2008 07:04:00 GMThttp://m.tkk7.com/mark1207/archive/2008/03/18/187004.htmlhttp://m.tkk7.com/mark1207/comments/187004.htmlhttp://m.tkk7.com/mark1207/archive/2008/03/18/187004.html#Feedback0http://m.tkk7.com/mark1207/comments/commentRss/187004.htmlhttp://m.tkk7.com/mark1207/services/trackbacks/187004.html
鎷夛細涔熷氨鏄瀵熻呮潵鍐沖畾鎺ュ埌“鍙瀵熻?#8221;綾婚氱煡鏃惰幏鍙?#8220;鍙瀵熻?#8221;鐨勫摢浜涘彉鍖栥傝皟鐢ㄦ柟娉昻otifyObservers錛堬級錛?br />
鎺細“鍙瀵熻?#8221;綾婚氱煡瑙傚療鑰呮椂浼犻掔粰瑙傚療鑰呰嚜韜墍鏈夌殑鍙樺寲銆傝皟鐢ㄦ柟娉昻otifyObservers錛圤bject arg錛夛紱


import java.util.Observable;
import java.util.Observer;
 //姝ょ被瀹炵幇鐨勬槸“鎷?#8221;鐨勫彂寮忥紝緇ф壙java.util.Observable綾?br /> public class WeatherData extends Observable {
 private float temperature;
 private float humidity;
 private float pressure;
 //鏋勯犲櫒涓嶉渶瑕佷負浜嗚浣忚瀵熻呬滑鑰屽緩绔嬫暟鎹粨鏋勪簡
 public WeatherData() { }
 
 public void measurementsChanged() {
  setChanged();//鎸囩ず鍙瀵熻呯姸鎬佸凡鏀瑰彉錛堝彲浠ョ敱鐘舵佹槸鍚︽敼鍙樺喅瀹氭槸鍚﹂氱煡瑙傚療鑰咃紝寰堝鏄擄紝鑷繁瀹炵幇灝辮錛?br />   notifyObservers();//娌℃湁璋冪敤浼犻佹暟鎹璞★紝琛ㄧず閲囩敤“鎷?#8221;鐨勫仛娉?br />  }
 
 public void setMeasurements(float temperature, float humidity, float pressure) {
  this.temperature = temperature;
  this.humidity = humidity;
  this.pressure = pressure;
  measurementsChanged();
 }
 //浠ヤ笅涓嶆槸鏂版柟娉曪紝鑰屾槸涓轟簡浣跨敤“鎷?#8221;鐨勫仛娉?br />  public float getTemperature() {
  return temperature;
 }
 
 public float getHumidity() {
  return humidity;
 }
 
 public float getPressure() {
  return pressure;
 }
}


import java.util.Observable;
import java.util.Observer;
 //瀹炵幇java.util.Observer鎺ュ彛錛屾垚涓鴻瀵熻?br /> public class CurrentConditionsDisplay implements Observer, DisplayElement {
 Observable observable;
 private float temperature;
 private float humidity;
 //鏋勯犲櫒闇瑕丱bservable 浣滀負鍙傛暟錛屽茍灝嗘湰瀵硅薄鐧昏涓鴻瀵熻?br />  public CurrentConditionsDisplay(Observable observable) {
  this.observable = observable;
  observable.addObserver(this);
 }
 //鏀瑰彉update()鏂規硶錛屽鍔燨bservable 鍜屾暟鎹璞′負鍙傛暟
 public void update(Observable obs, Object arg) {
  if (obs instanceof WeatherData) {
   WeatherData weatherData = (WeatherData)obs;
   this.temperature = weatherData.getTemperature();
   this.humidity = weatherData.getHumidity();
   display();
  }
 }
 
 public void display() {
  System.out.println("Current conditions: " + temperature
   + "F degrees and " + humidity + "% humidity");
 }
}

娉ㄦ剰錛歫ava.util.Observable鏄竴涓被鑰屼笉鏄帴鍙o紝鑰屼笖榪樻病鏈夊疄鐜頒換浣曟帴鍙c傚畠鏈韓鐨勫疄鐜版湁寰堝闂錛岄檺鍒朵簡瀹冪殑浣跨敤鍜屽鐢ㄣ傜敱浜庡畠鏄釜綾伙紝鎵浠ユ垜浠彧鑳界戶鎵匡紝java涓嶅厑璁稿緇ф壙錛屾墍浠ラ檺鍒朵簡鍏跺鐢ㄦ綔鍔涖傝屼笖setChanged()鏂規硶琚繚鎶よ搗鏉ワ紙琚畾涔夋垚protected錛夛紝榪欏氨鎰忓懗鐫闄ら潪緇ф壙錛屽惁鍒欐棤娉曞垱寤哄疄渚嬪茍緇勫悎鍒拌嚜宸辯殑瀵硅薄涓紝榪欏氨榪濊儗浜嗚璁″師鍒?#8220;澶氱敤緇勫悎錛屽皯鐢ㄧ戶鎵?#8221;銆?/span>

Mark 2008-03-18 15:04 鍙戣〃璇勮
]]>
瑙傚療鑰呮ā寮忥紙涓錛?/title><link>http://m.tkk7.com/mark1207/archive/2008/03/18/186986.html</link><dc:creator>Mark</dc:creator><author>Mark</author><pubDate>Tue, 18 Mar 2008 05:52:00 GMT</pubDate><guid>http://m.tkk7.com/mark1207/archive/2008/03/18/186986.html</guid><wfw:comment>http://m.tkk7.com/mark1207/comments/186986.html</wfw:comment><comments>http://m.tkk7.com/mark1207/archive/2008/03/18/186986.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/mark1207/comments/commentRss/186986.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/mark1207/services/trackbacks/186986.html</trackback:ping><description><![CDATA[<p><br />         瑙傚療鑰呮ā寮忥細鍦ㄥ璞′箣闂村畾涔変竴瀵瑰鐨勪緷璧栵紝褰撲竴涓璞℃敼鍙樼姸鎬侊紝渚濊禆浠栫殑瀵硅薄閮戒細鏀跺埌閫氱煡錛屽茍鑷姩鏇存柊銆傦紙浠ユ澗鑰﹀悎鏂瑰紡鍦ㄤ竴緋誨垪瀵硅薄涔嬮棿娌熼氱姸鎬侊紝浠h〃浜虹墿--MVC錛?br /> <br />         娉ㄦ剰浜嬮」錛氫富棰橈紙鍙瀵熻咃級鐢ㄤ竴涓叡鍚岀殑鎺ュ彛鏉ユ洿鏂拌瀵熻咃紝涓婚涓嶇煡閬撹瀵熻呯殑緇嗚妭錛屽彧鐭ラ亾瑙傚療鑰呭疄鐜頒簡瑙傚療鑰呮帴鍙c備嬌鐢ㄦ妯″紡鏃訛紝浣犲彲浠庤瑙傚療鑰呭鎺紙push錛夋垨鎷夛紙pull錛夋暟鎹紙鎺ㄧ殑鏂瑰紡琚涓烘洿姝g‘錛夈傛湁澶氫釜瑙傚療鑰呮椂錛屼笉鍙互渚濊禆鐗瑰畾鐨勯氱煡欏哄簭銆俲ava鏈夊縐嶈瀵熻呮ā寮忕殑瀹炵幇錛屽寘鎷琷ava.util.Observable(鏈変竴浜涜繚鑳岃璁″師鍒欑殑闂錛屾湁蹇呰鐨勮瘽鍙互瀹炵幇鑷繁鐨凮bservable)錛孞avaBeans,RMI絳夛紝Swing澶ч噺浣跨敤姝ゆā寮忥紝璁稿GUI妗嗘灦涔熸槸濡傛銆?br /> <br /> </p> 鐢ㄨ瀵熻呮ā寮忓疄鐜頒竴涓皵璞$珯鐨勫疄渚嬶細<br /> 瑕佹眰褰揥eatherData瀵硅薄錛堟帴鍙楃墿鐞嗘皵璞$珯鏁版嵁鐨勫璞★級鏇存柊鏁版嵁鏃訛紝闅忓嵆浼氭洿鏂頒笁涓竷鍛婃澘鐨勬樉紺猴細鐩墠鐘跺喌錛堟俯搴︺佹箍搴︺佹皵鍘嬶級銆佹皵璞$粺璁″拰澶╂皵棰勬姤銆傚茍涓斿叕甯傾PI鍙互璁╁叾浠栦漢鍐欏嚭鑷繁鐨勫竷鍛婃澘銆?br /> <br /> 浠g爜錛?br /> //涓婚鎺ュ彛錛屾彁渚涙敞鍐屻佸垹闄ゃ佹洿鏂板竷鍛婃澘鐨勬柟娉?br /> public interface Subject {<br />  public void registerObserver(Observer o);<br />  public void removeObserver(Observer o);<br />  public void notifyObservers();<br /> }<br /> <br /> //瑙傚療鑰呮帴鍙o紝鎻愪緵鏇存柊鏈竷鍛婃澘鐨勬柟娉?br /> public interface Observer {<br />  public void update(float temp, float humidity, float pressure);<br /> }<br /> <br /> //甯冨憡鏉挎樉紺烘帴鍙o紝鎻愪緵甯冨憡鏉挎樉紺虹殑鏂規硶<br /> public interface DisplayElement {<br />  public void display();<br /> }<br /> <br /> //涓婚瀹炵幇綾?br /> public class WeatherData implements Subject {<br />  private ArrayList observers;<br />  private float temperature;<br />  private float humidity;<br />  private float pressure;<br />  //鏋勯犳柟娉曚腑鍒濆鍖栬瀵熻呰褰?br />  public WeatherData() {<br />   observers = new ArrayList();<br />  }<br />  //娉ㄥ唽瑙傚療鑰?br />  public void registerObserver(Observer o) {<br />   observers.add(o);<br />  }<br />  //鍒犻櫎瑙傚療鑰?br />  public void removeObserver(Observer o) {<br />   int i = observers.indexOf(o);<br />   if (i >= 0) {<br />    observers.remove(i);<br />   }<br />  }<br />  //褰撲富棰樼姸鎬佹敼鍙樻椂璋冪敤錛屼互閫氱煡鎵鏈夎瀵熻?br />  public void notifyObservers() {<br />   for (int i = 0; i < observers.size(); i++) {<br />    Observer observer = (Observer)observers.get(i);<br />    observer.update(temperature, humidity, pressure);<br />   }<br />  }<br />  //閫氱煡瑙傚療鑰呮柟娉?br />  public void measurementsChanged() {<br />   notifyObservers();<br />  }<br />  //鏇存柊鏁版嵁鏂規硶<br />  public void setMeasurements(float temperature, float humidity, float pressure) {<br />   this.temperature = temperature;<br />   this.humidity = humidity;<br />   this.pressure = pressure;<br />   measurementsChanged();<br />  }<br />  <br />  // other WeatherData methods here<br />  <br />  public float getTemperature() {<br />   return temperature;<br />  }<br />  <br />  public float getHumidity() {<br />   return humidity;<br />  }<br />  <br />  public float getPressure() {<br />   return pressure;<br />  }<br /> }<br /> <br /> //瑙傚療鑰呭疄鐜扮被<br /> public class CurrentConditionsDisplay implements Observer, DisplayElement {<br />  private float temperature;<br />  private float humidity;<br />  private Subject weatherData;<br />  //鏋勯犳柟娉曚腑鎶婃瑙傚療鑰呮敞鍐屽埌涓婚<br />  public CurrentConditionsDisplay(Subject weatherData) {<br />   this.weatherData = weatherData;<br />   weatherData.registerObserver(this);<br />  }<br />  //淇敼瑙傚療鑰呯姸鎬?br />  public void update(float temperature, float humidity, float pressure) {<br />   this.temperature = temperature;<br />   this.humidity = humidity;<br />   display();<br />  }<br />  //鏄劇ず甯冨憡鏉挎洿鏂板唴瀹?br />  public void display() {<br />   System.out.println("Current conditions: " + temperature <br />    + "F degrees and " + humidity + "% humidity");<br />  }<br /> }<br /> <br /> <p>public class ForecastDisplay implements Observer, DisplayElement {<br />  private float currentPressure = 29.92f;  <br />  private float lastPressure;<br />  private WeatherData weatherData;</p> <p> public ForecastDisplay(WeatherData weatherData) {<br />   this.weatherData = weatherData;<br />   weatherData.registerObserver(this);<br />  }</p> <p> public void update(float temp, float humidity, float pressure) {<br />                 lastPressure = currentPressure;<br />   currentPressure = pressure;</p> <p>  display();<br />  }</p> <p> public void display() {<br />   System.out.print("Forecast: ");<br />   if (currentPressure > lastPressure) {<br />    System.out.println("Improving weather on the way!");<br />   } else if (currentPressure == lastPressure) {<br />    System.out.println("More of the same");<br />   } else if (currentPressure < lastPressure) {<br />    System.out.println("Watch out for cooler, rainy weather");<br />   }<br />  }<br /> }<br /> </p> <br /> <p>public class StatisticsDisplay implements Observer, DisplayElement {<br />  private float maxTemp = 0.0f;<br />  private float minTemp = 200;<br />  private float tempSum= 0.0f;<br />  private int numReadings;<br />  private WeatherData weatherData;</p> <p> public StatisticsDisplay(WeatherData weatherData) {<br />   this.weatherData = weatherData;<br />   weatherData.registerObserver(this);<br />  }</p> <p> public void update(float temp, float humidity, float pressure) {<br />   tempSum += temp;<br />   numReadings++;</p> <p>  if (temp > maxTemp) {<br />    maxTemp = temp;<br />   }<br />  <br />   if (temp < minTemp) {<br />    minTemp = temp;<br />   }</p> <p>  display();<br />  }</p> <p> public void display() {<br />   System.out.println("Avg/Max/Min temperature = " + (tempSum / numReadings)<br />    + "/" + maxTemp + "/" + minTemp);<br />  }<br /> }<br /> </p> <br /> //嫻嬭瘯綾?br /> <p>public class WeatherStation {</p> <p> public static void main(String[] args) {<br />   WeatherData weatherData = new WeatherData();<br />  <br />   CurrentConditionsDisplay currentDisplay = <br />    new CurrentConditionsDisplay(weatherData);<br />   StatisticsDisplay statisticsDisplay = new StatisticsDisplay(weatherData);<br />   ForecastDisplay forecastDisplay = new ForecastDisplay(weatherData);</p> <p>  weatherData.setMeasurements(80, 65, 30.4f);<br />   weatherData.setMeasurements(82, 70, 29.2f);<br />   weatherData.setMeasurements(78, 90, 29.2f);<br />  }<br /> }<br /> <br /> 褰撴垜浠兂娣誨姞涓涓竷鍛婃澘鐨勬椂鍊欏彧瑕佸疄鐜拌瀵熻呭熷彛灝卞彲浠ュ姞鍏ヤ富棰橀氱煡鐨勮褰曚腑錛屽疄闄呬唬鐮佸涓嬶細<br /> //鎴戜滑瑕佹坊鍔犱竴涓叿鐑寚鏁扮殑甯冨憡鏉匡紝鍒╃敤涓濂楀叕寮忔潵璁$畻閰風儹鎸囨暟銆?br /> </p> <p>public class HeatIndexDisplay implements Observer, DisplayElement {<br />  float heatIndex = 0.0f;<br />  private WeatherData weatherData;</p> <p> public HeatIndexDisplay(WeatherData weatherData) {<br />   this.weatherData = weatherData;<br />   weatherData.registerObserver(this);<br />  }</p> <p> public void update(float t, float rh, float pressure) {<br />   heatIndex = computeHeatIndex(t, rh);<br />   display();<br />  }<br />  //閰風儹鎸囨暟璁$畻<br />  private float computeHeatIndex(float t, float rh) {<br />   float index = (float)((16.923 + (0.185212 * t) + (5.37941 * rh) - (0.100254 * t * rh) <br />    + (0.00941695 * (t * t)) + (0.00728898 * (rh * rh)) <br />    + (0.000345372 * (t * t * rh)) - (0.000814971 * (t * rh * rh)) +<br />    (0.0000102102 * (t * t * rh * rh)) - (0.000038646 * (t * t * t)) + (0.0000291583 * <br />    (rh * rh * rh)) + (0.00000142721 * (t * t * t * rh)) + <br />    (0.000000197483 * (t * rh * rh * rh)) - (0.0000000218429 * (t * t * t * rh * rh)) +<br />    0.000000000843296 * (t * t * rh * rh * rh)) -<br />    (0.0000000000481975 * (t * t * t * rh * rh * rh)));<br />   return index;<br />  }</p> <p> public void display() {<br />   System.out.println("Heat index is " + heatIndex);<br />  }<br /> }<br /> <br /> //鍔犲叆閰風儹鎸囨暟甯冨憡鏉垮悗鐨勬祴璇曠被<br /> </p> <p>public class WeatherStationHeatIndex {</p> <p> public static void main(String[] args) {<br />   WeatherData weatherData = new WeatherData();<br />   CurrentConditionsDisplay currentDisplay = new CurrentConditionsDisplay(weatherData);<br />   StatisticsDisplay statisticsDisplay = new StatisticsDisplay(weatherData);<br />   ForecastDisplay forecastDisplay = new ForecastDisplay(weatherData);<br />   HeatIndexDisplay heatIndexDisplay = new HeatIndexDisplay(weatherData);</p> <p>  weatherData.setMeasurements(80, 65, 30.4f);<br />   weatherData.setMeasurements(82, 70, 29.2f);<br />   weatherData.setMeasurements(78, 90, 29.2f);<br />  }<br /> }</p> <img src ="http://m.tkk7.com/mark1207/aggbug/186986.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/mark1207/" target="_blank">Mark</a> 2008-03-18 13:52 <a href="http://m.tkk7.com/mark1207/archive/2008/03/18/186986.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>OO璁捐鍘熷垯http://m.tkk7.com/mark1207/archive/2008/03/18/186984.htmlMarkMarkTue, 18 Mar 2008 05:48:00 GMThttp://m.tkk7.com/mark1207/archive/2008/03/18/186984.htmlhttp://m.tkk7.com/mark1207/comments/186984.htmlhttp://m.tkk7.com/mark1207/archive/2008/03/18/186984.html#Feedback0http://m.tkk7.com/mark1207/comments/commentRss/186984.htmlhttp://m.tkk7.com/mark1207/services/trackbacks/186984.html 2銆侀拡瀵瑰熷彛緙栫▼錛岃屼笉鏄拡瀵瑰疄鐜扮紪紼?nbsp;銆?br /> 3銆佸鐢ㄧ粍鍚堬紝灝戠敤緇ф壙銆?br /> 4銆佷負浜や簰瀵硅薄涔嬮棿鐨勬澗鑰﹀悎璁捐鑰屽姫鍔涳紙鏉捐﹀悎璁捐鏇存湁寮規э紝鏇磋兘搴斿鍙樺寲錛?
5銆佺被搴旇瀵規墿灞曞紑鏀撅紝瀵逛慨鏀瑰叧闂?
6銆佷緷璧栨娊璞★紝涓嶈渚濊禆鍏蜂綋綾匯?

Mark 2008-03-18 13:48 鍙戣〃璇勮
]]>
絳栫暐妯″紡http://m.tkk7.com/mark1207/archive/2008/03/17/186698.htmlMarkMarkMon, 17 Mar 2008 01:55:00 GMThttp://m.tkk7.com/mark1207/archive/2008/03/17/186698.htmlhttp://m.tkk7.com/mark1207/comments/186698.htmlhttp://m.tkk7.com/mark1207/archive/2008/03/17/186698.html#Feedback0http://m.tkk7.com/mark1207/comments/commentRss/186698.htmlhttp://m.tkk7.com/mark1207/services/trackbacks/186698.html
    涓漢鐞嗚В錛氱瓥鐣ユā寮忓氨鏄妸鐖剁被涓渶瑕佹牴鎹笉鍚屾儏鍐佃屽彉鍖栫殑琛屼負鎯蟲垚“涓鏃忕畻娉?#8221;錛屽茍鎶婂畠鎶借薄鍑烘潵鍙樻垚涓や釜鎺ュ彛錛屽湪鐖剁被涓寘鍚繖涓帴鍙g被鍨嬬殑灞炴э紝榪欐牱灝卞彲浠ュ埄鐢ㄤ笉鍚岀殑鎺ュ彛瀹炵幇綾繪潵鏀瑰彉榪欎釜琛屼負銆傚茍涓旀坊鍔犱簡getter,setter鏂規硶鍚庡彲浠ュ湪榪愯鏃墮殢鎰忔敼鍙樿涓虹殑瀹炵幇錛岃繖鏍峰氨鍙互浣挎垜浠殑璁捐鏇村姞瀵屾湁寮規э紝鍙互浣挎垜浠殑璁捐鏇村姞鏄撲簬緇存姢鍜屾墿灞曘?

瀹炰緥浠g爜錛?br />
瑕佹眰錛氭墍鏈夌殑鍚勭被楦瓙緇ф壙涓涓秴綾伙紝騫朵笖鍙互鎷ユ湁鑷繁鐨勭壒鎬э紝鍙互鍥犱負闇姹傚彉鍖栬屾敼鍙樻煇涓腑瀛愭垨鏌愪竴綾婚腑瀛愮殑鏌愮鐗規э紙濡傚彲浠ユ敼鍙樺彨澹板拰椋炶鐘舵侊級銆?br />
//楦瓙瓚呯被
public abstract class Duck {
//椋炶鐘舵佺畻娉曟棌
 FlyBehavior flyBehavior;
//楦e彨鐘舵佺畻娉曟棌
 QuackBehavior quackBehavior;
 
 public Duck() {
 }
 //鏀瑰彉綆楁硶緇勭姸鎬佺殑鏂規硶錛屽彲鏄湪榪愯鏃舵敼鍙樼壒鎬х殑鏂規硶
 public void setFlyBehavior (FlyBehavior fb) {
  flyBehavior = fb;
 }
 
 public void setQuackBehavior(QuackBehavior qb) {
  quackBehavior = qb;
 }
 //鐢卞瓙綾葷戶鎵垮茍瀹炵幇鐨勯腑瀛愮壒鎬э紙涓嶄細鏀瑰彉錛?br />  abstract void display();
 //鐢卞瓙綾葷戶鎵跨殑椋炶鍜岄福鍙柟娉?br />  public void performFly() {
  flyBehavior.fly();
 }
 
 public void performQuack() {
  quackBehavior.quack();
 }
 
 public void swim() {
  System.out.println("All ducks float, even decoys!");
 }
}

//椋炶鎺ュ彛
public interface FlyBehavior {
 public void fly();
}

//椋炶鐘舵佸疄鐜扮被錛堜笉鑳介錛?br /> public class FlyNoWay implements FlyBehavior {
 public void fly() {
  System.out.println("I can't fly");
 }
}

//鐏鍔╂帹鍣?br /> public class FlyRocketPowered implements FlyBehavior {
 public void fly() {
  System.out.println("I'm flying with a rocket");
 }
}
//楦e彨鎺ュ彛
public interface QuackBehavior {
 public void quack();
}

//楦e彨鐘舵佸疄鐜扮被錛堜笉鑳藉彨錛?br /> public class MuteQuack implements QuackBehavior {
 public void quack() {
  System.out.println("<< Silence >>");
 }
}

//涓涓ā鍨嬮腑鐨勫瓙綾伙紝鍦ㄥ垱寤烘椂鎸囧畾鐗規?br /> public class DecoyDuck extends Duck {
//鍦ㄦ瀯閫犲櫒涓寚瀹氶琛岀壒鎬у拰楦e彨鐗規э紙涓嶈兘椋烇紝涓嶈兘鍙級
 public DecoyDuck() {
  setFlyBehavior(new FlyNoWay());
  setQuackBehavior(new MuteQuack());
 }

 public void display() {
  System.out.println("I'm a duck Decoy");
 }
}

//嫻嬭瘯紼嬪簭

public class MiniDuckSimulator {
 
 public static void main(String[] args) {
 
  DecoyDuck decoy = new DecoyDuck();

  decoy.performQuack();
   
  decoy .performFly(); 
//榪愯鏃舵妸椋炶鐘舵佹敼涓虹伀綆姪鎺ㄥ櫒椋炶
  decoy .setFlyBehavior(new FlyRocketPowered());
  decoy .performFly();
 }
}



Mark 2008-03-17 09:55 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 国产精品无码免费播放| 免费无码一区二区三区蜜桃| 国内精自视频品线六区免费| 亚洲人成网站影音先锋播放| 国产在线精品一区免费香蕉| 中文字幕亚洲一区二区va在线| 国产精品观看在线亚洲人成网| 日本高清免费不卡视频| 理论亚洲区美一区二区三区| 情侣视频精品免费的国产 | 亚洲日韩国产精品无码av| 男女午夜24式免费视频| 4480yy私人影院亚洲| 免费精品国产自产拍在| 亚洲丰满熟女一区二区哦| 免费一级毛片不卡不收费| 一个人看的www在线免费视频 | 成人影片麻豆国产影片免费观看| 亚洲 欧洲 日韩 综合在线| 日本免费人成黄页在线观看视频| 污网站在线观看免费| 国产亚洲色婷婷久久99精品91| 成人爽a毛片免费| 亚洲视频一区网站| 成人永久福利免费观看| 久久精品成人免费国产片小草| 亚洲一区精品中文字幕| 日本免费无遮挡吸乳视频电影| 三级黄色免费观看| 亚洲精品在线免费观看视频| 午夜免费福利在线观看| a在线视频免费观看在线视频三区| 亚洲五月激情综合图片区| 在线播放免费播放av片| 精品国产免费人成网站| 亚洲免费在线视频播放| 亚洲一级黄色视频| 精品女同一区二区三区免费站| 免费播放美女一级毛片| 亚洲最新在线视频| 国产亚洲精品久久久久秋霞|