锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲综合激情五月色一区,亚洲av无码专区在线播放,亚洲av无码成人精品区在线播放 http://www.tkk7.com/sharky77/钃︾劧鍥為錛岄偅浜哄嵈鍦ㄧ伅鐏槕鐝婂 zh-cn Sun, 11 May 2025 14:05:32 GMT Sun, 11 May 2025 14:05:32 GMT 60 浜插瘑鎺ヨЕ璁捐妯″紡(涓?-------Iterator(榪唬鍣? http://www.tkk7.com/sharky77/archive/2007/07/27/132468.html鍥炲綊 鍥炲綊 Fri, 27 Jul 2007 07:22:00 GMT http://www.tkk7.com/sharky77/archive/2007/07/27/132468.html http://www.tkk7.com/sharky77/comments/132468.html http://www.tkk7.com/sharky77/archive/2007/07/27/132468.html#Feedback 2 http://www.tkk7.com/sharky77/comments/commentRss/132468.html http://www.tkk7.com/sharky77/services/trackbacks/132468.html
鍓嶄簺鏅傚伐浣滃繖錛屼腑闁撳仠闋撲竴孌墊檪闁擄紝浠婂ぉ綣肩簩銆傚悜闂滄敞閫欓噷鐨勬枃绔犵殑鍗氬弸鍊戣〃紺烘姳姝夈?br> 浠婂ぉ瑾涓鍊嬬啊鍠殑妯″紡錛岃凱浠e櫒妯″紡(Iterator),浠栧爆浜庤鐐烘ā寮忎腑鐨勪竴紼?br> [褰㈡垚] 鍦↗ava紼嬪簭涓紝鍦ㄨ幾鍑篖ist欏炲瀷鐨勫皪璞℃檪鍊欙紝鍑虹従鏈澶氱殑紼嬪紡濉婂氨鏄細
1 for ( int i = 0 ;i < list.size; i ++ ){ 2 XXX x = (XXX)list.get(i); 3 }
鍏朵腑list 鏄疞ist 欏炲瀷錛岄噷閭婃斁钁楄嫢騫插媂XX欏炲瀷鐨勫皪璞°?br>閫欑ó 鏂瑰紡鏄噰鐢╥++閬炲鐨勬柟寮忎締閬嶆list涓殑鎵鏈夊皪璞′締閫茶鐩擱棞鎿嶄綔銆傚皪浜庤ō璦堟ā寮忥紝鎶奿鐨勫姛鑳芥娊璞″妰鐨勭祼鏋滃氨鏄細Iterator PatternIterate 涓枃鐨勬剰鎬濇槸“榪唬錛屽弽寰?#8221;錛孖terator 鐨勬剰鎬濆彲浠ョ悊瑙g偤“榪唬鍣?#8221;銆?br> [浠g爜紺轟緥] 紺轟緥紼嬪紡鏄妸鏇?Book)鏀懼埌鏇告灦涓?BookShelf)涓婏紝騫朵緷嬈¤幾鍑烘浉鍚嶃?br> 紼嬪紡鍒楄〃
鍚嶇ū
瑾槑
Aggregate
琛ㄧず宸茶仛鍚堢殑鎺ュ彛
Iterator
鍩瘋閬炲錛岄亶姝風殑鎺ュ彛
Book
琛ㄧず鏇哥睄鐨勯
BookShelf
琛ㄧず鏇告灦鐨勯
BookShelfIterator
鎺冩弿鏇告灦鐨勯
Main
娓│鐢ㄧ殑欏?/td>
[UML鍥綸 [紺轟緥浠g爜鍜岀被鐨勮癄閲奭
1 package Iterator; 2 3 import java.util.Iterator; 4 5 public interface Aggregate { 6 public abstract Iterator iterator(); 7 } 8
Aggregate 鎺ュ彛錛?br> 瑭叉帴鍙e彧鑱叉槑浜嗕竴鍊嬫柟娉曪紝寤虹珛涓鍊嬪彲浠ュ皪鎳夎仛鍚堢殑Iterator.,鐣墮渶瑕侀亶姝鋒煇鍊嬭仛鍚堝皪璞℃檪錛岃鐢↖terator鏂規硶鍙互寤虹珛涓鍊嬪鐝綢terator鎺ュ彛鐨勯鐨勫皪璞″渚嬨?br>
1 package Iterator; 2 3 public interface Iterator { 4 public abstract boolean hasNext(); 5 public abstract Object next(); 6 } 7
Iterator 鎺ュ彛錛?br>閫欐槸瑭叉ā寮忕殑鏍稿績鎺ュ彛錛孖terator鎺ュ彛鍩瘋鍏冪礌鐨勯仦澧烇紝鍏鋒湁寰挵閬嶆鐨勫姛鑳姐侷terator鐨勬帴鍙g殑鏂規硶鍥犻渶瑕佽屽畾錛屾垜鍊戝彲浠ュ垵姝ョ⒑瀹氭帴鍙f柟娉? hasNext() 錛氭槸妾㈡煡鏈夋矑鏈?#8220;涓嬩竴鍊嬪厓绱?#8221;錛岃繑鍥瀊oolean.錛堟湁錛岃繑鍥瀟rue,,鐒★紝榪斿洖false) next();鍙栧緱“涓嬩竴鍊嬪厓绱?#8221;錛屽悓鏅傛妸鍙栧皪璞$殑鎸囬嚌鎸囧悜涓嬩竴鍊嬪厓绱狅紝浠ヤ究涓嬫瑾跨敤next鏂規硶鐨勬檪鍊欑⒑瀵﹁兘鍙栧埌涓嬩竴鍊嬪厓绱犮傞欎簺鍏烽珨瀵︾従閭勫緱鐪嬪叿楂旂殑瀵︾従Iterator鎺ュ彛鐨勯鐨勫鐝炬墠鐭ラ亾
1 package Iterator; 2 3 public class Book { 4 private String name = "" ; 5 6 public Book(String name) { 7 this .name = name; 8 } 9 10 public String getName() { 11 return name; 12 } 13 } 14
Book 欏烇細 琛ㄧず鏇哥睄鐨勯錛屾瘮杓冪啊鍠紝閫氶亷getName鏂規硶寰楀埌鏇哥殑鍚嶅瓧錛屾浉鍚嶆槸浠ユ閫犲嚱鏁稿垵濮嬪寲灝嶈薄鐨勬檪鍊欑敤鍙冩暩渚嗗瓧铏熷畾銆?br>
1 package Iterator; 2 3 public class BookShelf implements Aggregate{ 4 private Book[] books; 5 private int last = 0 ; 6 7 public BookShelf( int maxsize){ 8 this .books = new Book[maxsize]; 9 } 10 11 public Book getBookAt( int index){ 12 return books[index]; 13 } 14 public void appendBook(Book book){ 15 this .books[last] = book; 16 last ++ ; 17 } 18 19 public int getLength(){ 20 return last; 21 } 22 public Iterator iterator(){ 23 return new BookShelfIterator( this ); 24 } 25 } 26
BookShelfl欏烇細 瑭查鏄〃鐝炬浉鏋朵綔鐢ㄧ殑欏烇紝淇濊瓑瀵︾従Aggregate鎺ュ彛鎵鑱叉槑鐨処terator鏂規硶閲岃繑鍥炲鐝綢terator鎺ュ彛鐨勫渚嬨傚鏋滈渶瑕侀亶姝鋒浉鏋朵笂鐨勬浉錛岃鐢╥terator鏂規硶銆俠ooks鏁哥祫瀛樻斁鐨勫皪璞″氨鏄痓ook,鏇告灦澶у皬鍙互鍦ㄤ竴闁嬪寤虹珛鏅傝ō緗ぇ灝忥紝鐣剁劧鎴戝戝彲浠ヤ笉鐢ㄦ暩緄勮岄噰鐢╦ava.util.Vector,灝卞彲浠ュ線鏇告灦涓婃斁瓚呴亷鎸囧畾鏁擱噺鐨勬浉綾嶃?br>
1 package Iterator; 2 3 public class BookShelfIterator implements Iterator{ 4 private BookShelf bookShelf; 5 private int index; 6 public BookShelfIterator(BookShelf bookShelf){ 7 this .bookShelf = bookShelf; 8 this .index = 0 ; 9 } 10 11 public boolean hasNext(){ 12 if (index < bookShelf.getLength()){ 13 return true ; 14 } else { 15 return false ; 16 } 17 } 18 19 public Object next(){ 20 Book book = bookShelf.getBookAt(index); 21 index ++ ; 22 return book; 23 } 24 25 } 26
BookShelfIterator欏烇細 瀛楁bookShelf鎸囧畾BookShelfIterator鎵瑕佹巸鎻忕殑鏇告灦錛岃宨ndex瀛楁鍓囨槸鎸囧悜鐩墠瑭叉浉鐨勪笅妯欍?br> 妲嬮犲嚱鏁告妸鍌抽亷渚嗙殑BookShelf灝嶈薄瀵︿緥鍎插瓨鍦╞ookShelf瀛楁錛屽皣index璦疆鐐?. 瀵︾従鐨刪asNext鏂規硶鍒ゆ柗鏄惁鏈変笅涓鏈浉鐨勬婧栨槸鏍規摎index鏄惁灝忎簬鏇告灦涓婃浉綾嶇殑鏁擱噺錛堣〃閬斿紡bookShelf.getLength()鐨勫?渚嗗垽鏂楓?br> next鏂規硶榪斿洖鐩墠瑭叉浉錛屽茍閫插叆鍒?#8220;涓嬩竴鍊?#8221;銆傚叐姝ワ細絎竴姝ュ厛鎶婂彇寰楃暥闈㈢殑鏇哥睄淇濈暀鍦╞ook璁婇噺錛岀劧鍚庢妸寰挵璁婇噺鎺ㄥ埌“涓嬩竴鍊?#8221;銆?br>
1 package Iterator; 2 3 public class Main { 4 /** 5 * @param args 6 */ 7 public static void main(String[] args) { 8 BookShelf bookShelf = new BookShelf( 3 ); 9 bookShelf.appendBook( new Book( " book1 " )); 10 bookShelf.appendBook( new Book( " book2 " )); 11 bookShelf.appendBook( new Book( " book3 " )); 12 Iterator it = bookShelf.iterator(); 13 while (it.hasNext()){ 14 Book book = (Book)it.next(); 15 System.out.println( " " + book.getName()); 16 } 17 } 18 19 } 20
Main欏烇細 1.鍏堟斁涓夋湰鏇鎬笂鏋?br> 2.閫氶亷瑾跨敤鏇告灦鐨刬terator鏂規硶寰楀埌榪唬鍣紝渚嗛茶寰挵閬嶆 3.寰挵閬嶆鏇哥睄錛屽彇鍑烘浉錛屾墦鍗板嚭鏇哥殑鍚嶅瓧銆?br>
紺轟緥紼嬪簭鐨勬墽琛岀粨鏋?/strong> book1 book2 book3 鍥為¨涓涓嬶紝鍦ㄨ凱浠e櫒妯″紡涓咕鍊嬮噸瑕?#8220;瑙掕壊”錛?br> 榪唬鍣? 瀹氱京浜嗚í鍟忓拰閬嶆鍏冪礌鐨勬帴鍙?錛屽畠瀹氱京浜嗚兘鍚﹀彇寰椾笅涓鍊嬪厓绱犱俊鎭殑鐨刪asNext鏂規硶鍜屽彇寰椾笅涓鍊嬪厓绱犵殑next鏂規硶 鍏烽珨鐨勮凱浠e櫒錛氬鐝句簡榪唬鍣ㄧ殑鎺ュ彛錛屽鏈緥鐨凚ookShelfIterator錛屾帉鎻¢亶姝鋒檪鐨勯噸瑕佷俊鎭?br> 鑱氬悎錛氬畾緹╀簡寤虹珛浜咺terator鐨勬帴鍙c傚鏈緥鐨勶細Aggregate鎺ュ彛錛屽畾緹╀簡Iterator鏂規硶 鍏烽珨鑱氬悎錛氬鐝句簡鑱氬悎鐨勬墍瀹氱京鐨勬帴鍙o紝濡傛湰渚嬬殑BookShelf錛屽畠瀵︾従浜咺terator鏂規硶銆?br> [鎷撳睍鎬濊僝 鏈変漢鍥炴兂錛屽共鍢涙悶閫欎箞楹葷叐錛岀敤涓鍊媐or涓嶅氨鏄彲浠ラ亶姝鋒暩緄勬垨List紕鹼紵鎬濊冧竴涓嬭凱浠e櫒鐨勭祼妲嬨侷terator鏄妸瀹氱京鍜屽鐝懼垎闁?br> while(it.hasNext ()){ Book book = (Book)it.next (); System.out.println(" "+book.getName()); } 閫欓噷鎴戝彧瑾跨敤浜咺terator鎺ュ彛鐨刪asNext鍜宯ext鏂規硶錛屽茍娌掓湁瑾跨敤BookShelf瀵︾従閬嶆鏄渶瑕佺殑鏂規硶錛屽:getBookAt()銆傞欓噷鐨剋hile涓嶆渻鏀跺埌BookShelf鐨勫鐝懼獎闊褲?br> 鍋囪ō閫欓噷鎴戝戜笉閲囩敤鏁哥祫渚嗙鐞咮ookShelf錛岃岄噰鍙栬垏Java.util.Vector渚嗙鐞嗐傜劇璜朆ookShelf鐨勫浣曚慨鏀癸紝閮組ain娓│紼嬪簭閲岀劇闇淇敼浠諱綍紼嬪簭灝卞彲浠ラ亱琛岋紝閫欏氨鏄ō璦堟ā寮忕殑鍎嫝銆傝ō璦堟ā寮忔槸鐐轟簡鎻愰珮欏炵殑鏈嶇敤鐜囷紝濡傛灉鎶婁竴鍊嬮浂浠朵慨鏀逛簡錛屽氨涓嶆兂瑕佷慨鏀瑰叾浠栦嬌鐢ㄤ簡鏀歸浂浠剁殑閮ㄥ垎銆?br>
]]>浜插瘑鎺ヨЕ璁捐妯″紡(浜?-------Singleton(鍗曚緥) http://www.tkk7.com/sharky77/archive/2007/06/08/122780.html鍥炲綊 鍥炲綊 Fri, 08 Jun 2007 03:36:00 GMT http://www.tkk7.com/sharky77/archive/2007/06/08/122780.html http://www.tkk7.com/sharky77/comments/122780.html http://www.tkk7.com/sharky77/archive/2007/06/08/122780.html#Feedback 7 http://www.tkk7.com/sharky77/comments/commentRss/122780.html http://www.tkk7.com/sharky77/services/trackbacks/122780.html
[褰㈡垚]
Singleton Pattern 涓轟粈涔堜細鍑虹幇?鍦ㄦ垜浠蔣浠跺紑鍙戝拰鏋舵瀯涓?緇忓父閬囧埌榪欐牱鐨勬儏褰?鎴戜滑闇瑕佷竴涓被鍙兘涓斾粎鑳戒駭鐢熶竴涓疄渚?.姣斿琛ㄧず涓鍙拌綆楁満鐨勭被,琛ㄧず緋葷粺璁懼畾鐨勭被鎴栬呮槸琛ㄧず紿楀彛鐨勭被,榪樻湁涓轟簡鑺傜害璧勬簮,鍙浜х敓涓涓疄渚?.
濡備綍鏋勯犺繖縐嶆儏褰?Singleton妯″紡緇欐垜涓涓柟妗?
[浠g爜紺轟緥]
紼嬪簭鍒楄〃
鍚嶇О
璇存槑
Singleton
鍙湁涓涓璞″疄渚嬬殑綾?/p>
Main
嫻嬭瘯鐢ㄧ殑綾?/p>
[UML鍥綸
[紺轟緥浠g爜鍜岀被鐨勮癄閲奭
1 package singleton;
2
3 public class Singleton {
4 private static Singleton singleton = new Singleton();
5
6 private Singleton() {
7 System.out.println( " Create instance... " );
8 }
9
10 public static Singleton getInstance() {
11 return singleton;
12 }
13 }
14
Singleton Class:
1.璇ョ被鍙兘浜х敓涓涓璞″疄渚?br />
2.鎶婅綾葷殑鐨剆ingleton灞炴ц瀹氫負static鍐嶄互Singleton;綾葷殑瀵硅薄瀹炰緥榪涜鍒濆鍖?榪欎釜鍒濆鍖栫殑榪囩▼浠呭姞杞絊ington綾葷殑鏃跺欒皟鐢ㄤ竴嬈?(Line4)
3.鎶奡ingleton 綾葷殑鏋勯犲嚱鏁伴檺瀹氫負private,鐩殑鏄負浜嗛槻姝粠闈濻ingleton綾?鍏朵粬綾?璋冪敤鏋勯犲嚱鏁版潵浜х敓瀹炰緥,濡傛灉閫氳繃new鏂瑰紡鏉ヤ駭鐢烻ingleton瀹炰緥,浼氬嚭鐜扮紪璇戦敊璇?榪欐牱鍋氭槸涓轟簡淇濋櫓宸辮.(Line6)
4.瑕佸緱鍒癝ingleton瀹炰緥鐨勫敮涓鏂規硶灝辨槸璋冪敤綾婚潤鎬佹柟娉昰etInstance().榪欎釜鍚嶅瓧鍙互闅忎究鍙?鍙鏂逛究鐞嗚В灝辮.(Line 10)
1 package singleton;
2
3 public class Main {
4
5 public static void main(String[] args) {
6 System.out.println( " Start " );
7 Singleton obj1 = Singleton.getInstance();
8 Singleton obj2 = Singleton.getInstance();
9 if (obj1 == obj2){
10 System.out.println( " obj1鍜宱bj2鏄悓涓鍊嬪皪璞″渚?/span>" );
11 } else {
12 System.out.println( " obj1鍜宱bj2涓嶆槸鍚屼竴鍊嬪皪璞″渚?/span>" );
13 }
14 System.out.println( " End " );
15 }
16 }
17
Main Class
1.璇ョ被鏄祴璇曠▼搴?
2.紼嬪簭閫氳繃getInstance()鏂瑰紡浜х敓涓や釜obj1鍜宱bj2瀹炰緥.(Line 7,Line 8)
3.閫氳繃ojb1= =ojb2琛ㄨ揪寮忔潵紜畾涓や釜瀵硅薄鏄惁鐩稿悓,鍒ゅ畾鏄惁浜х敓浜哠ingleton鐨勭浜屼釜紺轟緥.(Line9-12 )
紺轟緥紼嬪簭鐨勬墽琛岀粨鏋?/strong>
Start
Create instance...
obj1鍜宱bj2鏄悓涓鍊嬪皪璞″渚?br />
End
鎵ц緇撴灉鍚箟:
1. 鐨勭‘濡傛,obj1鍜宱bj2鏄疭ingleton綾葷殑鍚屼竴涓笖鍞竴鐨勫璞″疄渚?
2.褰撶▼搴忔墽琛屽悗,絎竴嬈¤皟鐢╣etInstance鐨勬椂鍊欎細鍒濆鍖朣ingleton綾?鍚屾椂涔熶細鍒濆鍖杝tatic瀛楁,涔熷悓鏃朵駭鐢熶駭鐢熶簡涓涓敮涓瀵硅薄瀹炰緥.
[鎷撳睍鎬濊僝
濡備笅鐨勫彟涓涓涓崟渚嬫ā寮忕殑紼嬪簭鏈変粈涔堥殣鎮?
1 package singleton;
2
3 public class Singleton2 {
4
5 private static Singleton2 singleton = null ;
6
7 private Singleton2(){
8 System.out.println( " 宸茬敘鐢熷皪璞″渚?/span>" );
9 }
10 public static Singleton2 getInstance(){
11 if (singleton == null ){
12 singleton = new Singleton2();
13 }
14 return singleton;
15 }
16
17 }
18
[瑙g瓟]
褰撳綰跨▼鍚屾椂璋冪敤Singleton2.getInstance()鏂規硶鏃訛紝鍙兘浼氫駭鐢熷涓璞″疄渚嬶紝渚嬪
public class Main extends Thread {
public static void main(String[] args) {
System.out.println( " Starts. " );
new Main( " A " ).start();
new Main( " B " ).start();
new Main( " C " ).start();
System.out.println( " End. " );
}
public void run() {
Singleton2 obj = Singleton2.getInstance();
System.out.println(getName() + " : obj = " + obj);
}
public Main(String name) {
super (name);
}
}
public class Singleton2 {
private static Singleton2 singleton2 = null ;
private Singleton2() {
System.out.println( " 宸蹭駭鐢熷璞″疄渚?/span>" );
solwDown();
}
public static Singleton2 getInstance() {
if (singleton2 == null ) {
singleton2 = new Singleton2();
}
return singleton2;
}
private void solwDown() {
try {
Thread.sleep( 1000 );
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
鎵ц緇撴灉錛?br />
Start.
End.
宸蹭駭鐢熷璞″疄渚?
宸蹭駭鐢熷璞″疄渚?
宸蹭駭鐢熷璞″疄渚?
B: obj = Singleton2#2a9348
C: obj = Singleton2#b91134
A: obj = Singleton2#e343l12
錛?鏇挎崲涓篅錛?br />
涔嬫墍浠ヤ細鐭ラ亾榪欑鎯呭喌鏄洜涓篿f(singleton = = null){ singleton = new Singleton2(); }鍒ゆ柇涓嶅涓ヨ皚鐨勫鑷淬?br />
鍒╃敤: singleton == null 鍒ゆ柇涓虹┖鍚庡幓鎵цnew Singleton2()涔嬪墠錛屽彲鑳戒細鏈夊叾浠栫嚎紼嬫潵鎶㈠厛鍒ゆ柇琛ㄨ揪寮弒ingleton == null錛屼粠鑰屽張鎵ц涓閬嶅垱寤哄疄渚嬬殑鎿嶄綔銆?br />
瑙e喅鍔炴硶錛?br />
緇檊etInstance()鏂規硶娣誨姞Synchronized淇グ絎︼紝鍗沖彲淇敼鎴愮嚎紼嬪畨鍏ㄤ弗璋ㄧ殑鍗曚緥妯″紡銆?br />
public class Singleton2 {
private static Singleton2 singleton = null ;
private Singleton2() {
System.out.println( " 宸蹭駭鐢熷璞″疄渚?/span>" );
solwDown();
}
public static synchronized Singleton2 getInstance() {
if (singleton == null ) {
singleton = new Singleton2();
}
return singleton;
}
private void solwDown() {
try {
Thread.sleep( 1000 );
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
]]> 浜插瘑鎺ヨЕ璁捐妯″紡(涓)----UML鍩虹(淇澧炶ˉ鐗? http://www.tkk7.com/sharky77/archive/2007/06/08/122199.html鍥炲綊 鍥炲綊 Fri, 08 Jun 2007 01:53:00 GMT http://www.tkk7.com/sharky77/archive/2007/06/08/122199.html http://www.tkk7.com/sharky77/comments/122199.html http://www.tkk7.com/sharky77/archive/2007/06/08/122199.html#Feedback 0 http://www.tkk7.com/sharky77/comments/commentRss/122199.html http://www.tkk7.com/sharky77/services/trackbacks/122199.html [UML婕皥]
璇濊"宸ユ鍠勫叾宸ラ渶鍒╁叾鍣?,鏈変簡濂界殑宸ュ叿,濂界殑琛ㄨ揪鏂瑰紡,鑳界粰鎴戜滑鐨勫伐浣滃彉寰楃畝鍗曡屼紭闆?
涓轟簡鏇村ソ鐨勮瑙h璁℃ā寮?鏂逛究鐞嗚В,闇瑕佽繍鐢ㄤ竴縐嶅緩妯¤璁¤璦----UML.
UML(UML:Unified Modeling Language),鍗崇粺涓寤烘ā璇█,鐢ㄦ潵瀵硅蔣浠跺瘑闆嗙郴緇熻繘琛屾弿榪般佹瀯閫犮佽鍖栧拰鏂囨。緙栧埗鐨勪竴縐嶈璦.榪欐槸姒傚康,涓嶅ソ鐞嗚В.
UML鐨勪綔鐢?鎵撲釜姣旀柟:涓孌墊弿鍐欒糠浜烘搗婊╅鏅殑鏂囧瓧鍜屼竴騫呮弿緇樻搗婊╅鏅殑娌圭敾,鍘葷湅榪欎袱浠朵笢瑗跨殑浜?鏈夌殑浜哄彲鑳借兘璇繪噦鏂囧瓧(鍙兘鏄壒瀹氱殑璇█),鏈夌殑涓嶈瀛?鎵浠ュ茍涓嶆槸鎵鏈夌殑浜鴻兘鐪嬫噦鏂囧瓧琛ㄨ揪鐨勫唴瀹?浣嗘槸鎵鏈夌殑浜洪兘鑳借鎳傛補鐢繪墍琛ㄧ幇鍑烘潵鐨勫惈涔?娌圭敾琛ㄨ揪鍐呭鐨勭洿鎺?褰㈣薄,涓板瘜鐗規у氨綾誨瀷UML鍦ㄦ弿鍙欒蔣浠剁粨鏋勮繃紼嬩腑鐨勪綔鐢?
鍦ㄨ蔣浠墮」鐩腑,涓鑸湁鍑犱釜瑙掕壊:鐢ㄦ埛(User),鏋舵瀯璁捐甯?orPM, SA),紼嬪簭鍛?PG)
鐢ㄦ埛 :
涔熻涓嶆噦璁$畻鏈?涔熶笉鎳傜紪紼嬭璦,浣嗘槸鎳傝涓氫笟鍔?璇ヨ蔣浠剁殑鍔熻兘闇姹?
紼嬪簭鍛?br />
鎳傝綆楁妧鏈?鎳傜紪紼嬭璦.浣嗘槸涓嶅お浜嗚В琛屼笟閫昏緫.闇瑕佹妸瀹㈡埛鐨勪笟鍔″簲鐢ㄩ渶姹傝漿鍙樹負紼嬪簭浠g爜,
鏋舵瀯璁捐甯?br />
璧勬繁鐨勮涓氭灦鏋勮璁″笀搴旇鍏鋒湁涓瀹氱殑琛屼笟鐭ヨ瘑,鏃㈣兘鍚噦瀹㈡埛鐨勪笟鍔¢渶姹?鍙堣兘鐭ラ亾鎬庝箞鍛婅瘔紼嬪簭鍛樺幓鐢ㄤ唬鐮佸疄鐜?
鏋舵瀯璁捐甯堝湪鍓嶄袱鑰呬氦嫻佷腑璧峰埌鎵垮墠鍚悗鐨?涓棿浣?浣滅敤.UML灝辨槸閲囩敤鍥懼艦鍖栫殑褰㈠紡鏉ヨ〃杈炬灦鏋勫拰璁捐.鎴愪負浜嗗緩妯¤璁$殑閫氱敤鐨勮璁℃爣鍑?.
UML鍥捐淇℃伅浜ゆ祦鍙樺緱綆鍗?br />
[UML鍩虹]
姝ゅ鍙粙緇嶅府鍔╃悊瑙h璁℃ā寮忕殑UML鍩虹,鍏蜂綋鍏朵粬鐨刄ML鍥劇ず闇瑕佸弬鑰冨叿浣撶殑璁茶ВUML鐨勪功綾?
1.綾葷殑灞傜駭鍏崇郴
UML涓殑綾誨浘鏄竴縐嶅彲琛ㄧず涓緇勭被,瀵硅薄瀹炰緥鍜屾帴鍙d箣闂寸殑闈欐佸叧緋誨浘.
濡傚浘鐨刄ML綾誨浘琛ㄨ揪浜嗕笂闈唬鐮佺殑鍚箟,
綾諱箣闂寸殑鍏崇郴鏈夊洓縐?渚濊禆,娉涘寲,瀹炵幇鑱氶泦,緇勬垚.鍏蜂綋鐨刄ML瀹炰緥鍙互鍙俇ML鍩虹.
2.鎺ュ彛鍜屽疄鐜?br />
瀹炵幇鎺ュ彛鐨刄ML紺轟緥濡備笅:
interface Printable {
abstract void print();
}
public class PrintClass implements Printable {
public void print() {
// how to print
}
}
鎺ュ彛,鎶借薄,瀹炵幇,緇ф壙鍦ㄨ璁℃ā寮忎腑琚箍娉涚殑浣跨敤,榪欎篃鏄疧OD鐨勪紭鍔挎墍鍦?緹庡鎵鍦?
榪欓噷鍙婦鍑轟簡鍑犱釜綆鍗曟儏褰?璁╁ぇ瀹舵湁涓劅鎬х殑浜嗚В,鍏蜂綋鐨勬儏褰㈠湪璇村叿浣撶殑璁捐妯″紡鐨勬椂鍊欏湪閽堝鎬х殑璇存槑,鍏堜笉鐢ㄥ紕閭d箞澶?閭d箞鏉?鑳藉紑濮嬩笅涓姝ュ氨瓚沖.
綾諱箣闂寸殑鍏崇郴
綾諱箣闂寸殑鍏崇郴鏈?縐嶏紝鍏寵仈 渚濊禆 鑱氶泦 娉涘寲 瀹炵幇
]]> 浜插瘑鎺ヨЕ璁捐妯″紡(搴? http://www.tkk7.com/sharky77/archive/2007/06/05/122079.html鍥炲綊 鍥炲綊 Tue, 05 Jun 2007 03:30:00 GMT http://www.tkk7.com/sharky77/archive/2007/06/05/122079.html http://www.tkk7.com/sharky77/comments/122079.html http://www.tkk7.com/sharky77/archive/2007/06/05/122079.html#Feedback 3 http://www.tkk7.com/sharky77/comments/commentRss/122079.html http://www.tkk7.com/sharky77/services/trackbacks/122079.html 鍘熷垱浣滆?闃塊 鏃ユ湡:2007-06-05 棣栧厛璇磋鍐欒繖緋誨垪鐨勬枃绔犵殑鎯蟲硶錛岀洰鐨勫湪浜? 1.鑷繁涔熷湪鐮斾範璁捐妯″紡,閫氳繃鍦ㄨ嚜鎴戞葷粨鐨勮繃紼嬩腑,甯屾湜鑳藉璁捐妯″紡澶氫竴鐐規繁鍒葷悊瑙?br> 2.甯屾湜緇欑湅鍒拌繖緋誨垪鏂囩珷鐨勬湅鍙嬩竴鐐瑰璁捐妯″紡瀛︿範鐨勫府鍔?鐗瑰埆鏄璁捐妯″紡鐨勫垵瀛﹁呰兘璧峰埌"寮曡繘闂?鐨勬晥鏋? 濡傛灉浠ヤ笂鐨勪綔鐢ㄨ兘璧峰埌鍝曚竴鐐?鎴戜篃嬈i椈鑰岀瑧浜? 璁捐妯″紡(Design Patterns)鏄粈涔?涓轟粈涔堜細鍑虹幇璁捐妯″紡?鍋氳繃寮鍙戦」鐩殑鏈嬪弸鍙兘閮介亣鍒拌繃,涓涓棶棰樹細鍦ㄤ竴涓」鐩垨鑰呭涓」鐩腑閲嶅鍑虹幇,鑰岀浉搴旂殑瑙e喅鏂規閮芥槸綾諱技鐩稿悓,鐩稿簲浠g爜鐨勫疄鐜頒篃鏄ぇ鍚屽皬寮?涓轟粈涔堟垜浠笉鑳藉鐢ㄨ繖浜涜В鍐蟲柟妗?鎴栬呰鎴戜滑鏄惁鑳戒慨鏀規垨閲嶆柊鏋勫緩涓涓嬭璁℃灦鏋勬潵浣垮緱閲嶅鐨勪唬鐮佹洿灝?緇撴瀯鏇村悎鐞? 褰撶劧,榪欎簺鏄彲琛屼笖鏈夊繀瑕佺殑. 姝ゆ椂璁捐妯″紡鐨勫嚭鐜拌鎴戜滑鑼呰垗欏垮紑. 璇村埌璁捐妯″紡,涓嶅緱璋堜竴鏈功<Design Patterns:Element of Resuable Object-Oriented Software),浣滆呮槸GoF,瀹為檯鏄笁涓漢鍚堣憲鐨?涔嬫墍浠ユ彁鍒拌繖鏈功,鍥犱負榪欐湰涔︾殑緇忓吀鍦ㄤ簬璇︾粏闃愯堪浜?3縐嶅湪杞歡寮鍙戣繃紼嬩腑榪愮敤騫挎硾鐨?妯″紡",榪欎竴涓悊蹇電殑鎻愬嚭,緇欓潰鍚戝璞¤璁?OOD)娉ㄥ叆浜嗘柊鐨勮娑?浣撶幇鍑篛OD瓚呰秺闈㈠悜榪囩▼璁捐鐨勪紭鍔挎墍鍦?浠庢璁╃▼搴忓憳鐪嬪緟浠g爜鏈変簡"鍝插鐨勭溂鍏?.. 灝卞儚榪欐湰涔﹀畾涔夌殑妯″紡:姣忎釜妯″紡鎻忚堪浜嗕竴涓湪鎴戜滑鍛ㄥ洿涓嶆柇閲嶅鍜屽彂鐢熺殑闂,浠ュ強璇ラ棶棰樿В鍐蟲柟妗堢殑鏍稿績,榪欐牱浣犲氨鑳戒竴嬈″張涓嬈′嬌鐢ㄨ鏂規鑰屼笉蹇呭仛閲嶅鍔沖姩. 鑷蟲,璁捐妯″紡鐨勬剰涔夊凡緇忓嚫鐜?璁捐妯″紡緇欐垜浠殑鍚彂鍙堟槸浠涔?鐨勭‘,姣忎釜緇忓吀鐨勮璁℃ā寮忎綋鐜板嚭浜嗗ぇ甯堢殑綺炬箾鎬濇兂,鎴戜滑闇瑕佷粠涓緱鍒扮殑鍚彂鏄兘鍚?涓句竴鍙嶄笁",鍦ㄦ垜浠瘡涓嬈$殑杞歡璁捐鍜屽紑鍙戜腑铻嶅叆榪欎簺緇忓吀妯″紡,璁╄蔣浠惰璁″緱鏇存槗鐞嗚В,鏇存槗鎷撳睍,鏇存槗緇存姢. 榪欐槸璁捐妯″紡緇欏悗浜虹殑鏈澶у惎紺? 緇忓吀鐨勮璁℃ā寮忕鄲鎴戠殑鍚ず搴旇鏄嬫濇兂,鑰屼笉鏄浐瀹氱殑閭e咕鍊嬫ā寮?鍏蜂綋鐨勮蔣浠墮」鐩垨杞歡浜у搧,鏈冩湁涓嶅悓鎯呭艦,鎴戜滑搴旇渚濇嵁鍏蜂綋鐨勬儏娉佸悎鐞嗚繍鐢ㄦā寮忔濇兂,璁捐妯″紡鍙槸"鎷涘紡"濂楄礬,瑕佸仛鍒?鏃犳嫑鑳滄湁鎷?,闇瑕佸叿浣撶殑鎯呭艦鍒嗘瀽,騫墮潪涓瀹氳濂楃敤鎵璋撶殑妯″紡,浣嗘槸鍘熷垯鏄笉鍙樼殑,"璁╄蔣浠舵槗鐞嗚В,鏄撴嫇灞?鏄撶淮鎶?. 鎶婅璦鐗規у拰璁捐妯″紡鏈夋満緇撳悎璧鋒潵,瀵逛簬紼嬪簭鍛樻潵璇存槸涓涓垚闀跨殑鏍囧織鐐逛篃鏄漿鎶樼偣,甯屾湜姝ゆ枃鑳藉鎵鏈夌▼搴忓憳鏈夋墍甯姪. 鐢ㄥ績鍘誨啓鏂囩珷鏄歡涓嶅鏄撶殑浜嬫儏,闇瑕佸潥鎸佸拰鎵ц憲,鏃㈢劧寮濮?灝卞簲璇ュ潥鎸佸埌搴?. 榪欎釜緋誨垪鐨勬枃绔犱富瑕佹槸浠嶨oF鐨勫綊綰崇殑23縐嶈璁′腑鎸戦夊崄鏉ヤ釜鍦ㄨ蔣浠墮」鐩腑甯哥敤鍜岃繍鐢ㄧ殑璁捐榪涜璁插彊,璁插彊椋庢牸搴旇鏄畝鍗?娣卞叆嫻呭嚭,鎬濊礬鍜屼唬鐮佺浉緇撳悎. 璇ョ郴鍒楁枃绔犺璁茶堪鐨勫嚑涓粡鍏歌璁℃ā寮?(鏆傚畾)
鍒涘緩妯″紡(Creational Patterns) * Singleton ------鍗曚緥 * Factory Method -----宸ュ巶鏂規硶
緇撴瀯妯″紡(Structural Patterns) * Adapter ------閫傞厤鍣?nbsp; * Facade -----澶栬 * Decorator ------瑁呴グ * Proxy -----浠g悊
琛屼負妯″紡(Behavioral Patterns) * Iterator------榪唬鍣?/a> * Template Method-----妯℃澘鏂規硶 * Observer ------瑙傚療鑰?nbsp; * Strategy -----絳栫暐 瀹炵幇璇█閲囩敤Java,鏄璁℃ā寮忚OOD鎴愪負杞歡寮鍙戝巻鍙蹭笂鐨勫厜杈夋洿鍔犵粴鐑? 鏈変漢璇?寮濮嬫繪槸濂界殑.鎵浠?璧剁揣寮濮嬫妸. ]]>
主站蜘蛛池模板:
中文字幕亚洲专区 |
在线观看亚洲AV每日更新无码 |
99国产精品免费视频观看 |
亚洲AV无码一区二区三区在线 |
国产高清在线免费视频 |
野花香高清在线观看视频播放免费 |
亚洲成aⅴ人在线观看 |
免费看小12萝裸体视频国产 |
四虎国产成人永久精品免费 |
色偷偷尼玛图亚洲综合 |
亚洲AV永久纯肉无码精品动漫 |
性感美女视频免费网站午夜 |
和老外3p爽粗大免费视频 |
亚洲三级高清免费 |
亚洲精品国产精品乱码不99 |
国产精品视频永久免费播放 |
久久免费观看国产精品88av |
精品国产日韩亚洲一区在线 |
亚洲一区二区三区日本久久九 |
亚洲äv永久无码精品天堂久久 |
久9这里精品免费视频 |
一级白嫩美女毛片免费 |
亚洲五月综合缴情婷婷 |
亚洲高清国产AV拍精品青青草原 |
国产美女被遭强高潮免费网站 |
57pao一国产成永久免费 |
手机看片国产免费永久 |
精品亚洲成a人在线观看 |
亚洲一区电影在线观看 |
久久精品亚洲日本佐佐木明希 |
日韩精品亚洲专区在线观看 |
国产福利在线免费 |
精品一区二区三区免费毛片爱 |
成人国产精品免费视频 |
黄床大片30分钟免费看 |
2020亚洲男人天堂精品 |
亚洲欧洲另类春色校园小说 |
久久精品亚洲综合 |
久久99国产亚洲精品观看 |
在线观看亚洲av每日更新
|
亚洲综合AV在线在线播放 |