锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲综合激情五月色一区,亚洲av无码专区在线播放,亚洲av无码成人精品区在线播放http://www.tkk7.com/sharky77/钃︾劧鍥為錛岄偅浜哄嵈鍦ㄧ伅鐏槕鐝婂zh-cnSun, 11 May 2025 14:05:32 GMTSun, 11 May 2025 14:05:32 GMT60浜插瘑鎺ヨЕ璁捐妯″紡(涓?-------Iterator(榪唬鍣?http://www.tkk7.com/sharky77/archive/2007/07/27/132468.html鍥炲綊鍥炲綊Fri, 27 Jul 2007 07:22:00 GMThttp://www.tkk7.com/sharky77/archive/2007/07/27/132468.htmlhttp://www.tkk7.com/sharky77/comments/132468.htmlhttp://www.tkk7.com/sharky77/archive/2007/07/27/132468.html#Feedback2http://www.tkk7.com/sharky77/comments/commentRss/132468.htmlhttp://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 Pattern

Iterate 涓枃鐨勬剰鎬濇槸“榪唬錛屽弽寰?#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>
 


鍥炲綊 2007-07-27 15:22 鍙戣〃璇勮
]]>
浜插瘑鎺ヨЕ璁捐妯″紡(浜?-------Singleton(鍗曚緥)http://www.tkk7.com/sharky77/archive/2007/06/08/122780.html鍥炲綊鍥炲綊Fri, 08 Jun 2007 03:36:00 GMThttp://www.tkk7.com/sharky77/archive/2007/06/08/122780.htmlhttp://www.tkk7.com/sharky77/comments/122780.htmlhttp://www.tkk7.com/sharky77/archive/2007/06/08/122780.html#Feedback7http://www.tkk7.com/sharky77/comments/commentRss/122780.htmlhttp://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();
        }
    }
}



鍥炲綊 2007-06-08 11:36 鍙戣〃璇勮
]]>
浜插瘑鎺ヨЕ璁捐妯″紡(涓)----UML鍩虹(淇澧炶ˉ鐗?http://www.tkk7.com/sharky77/archive/2007/06/08/122199.html鍥炲綊鍥炲綊Fri, 08 Jun 2007 01:53:00 GMThttp://www.tkk7.com/sharky77/archive/2007/06/08/122199.htmlhttp://www.tkk7.com/sharky77/comments/122199.htmlhttp://www.tkk7.com/sharky77/archive/2007/06/08/122199.html#Feedback0http://www.tkk7.com/sharky77/comments/commentRss/122199.htmlhttp://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箞鏉?鑳藉紑濮嬩笅涓姝ュ氨瓚沖.

綾諱箣闂寸殑鍏崇郴

綾諱箣闂寸殑鍏崇郴鏈?縐嶏紝鍏寵仈 渚濊禆 鑱氶泦 娉涘寲 瀹炵幇


鍥炲綊 2007-06-08 09:53 鍙戣〃璇勮
]]>
浜插瘑鎺ヨЕ璁捐妯″紡(搴?http://www.tkk7.com/sharky77/archive/2007/06/05/122079.html鍥炲綊鍥炲綊Tue, 05 Jun 2007 03:30:00 GMThttp://www.tkk7.com/sharky77/archive/2007/06/05/122079.htmlhttp://www.tkk7.com/sharky77/comments/122079.htmlhttp://www.tkk7.com/sharky77/archive/2007/06/05/122079.html#Feedback3http://www.tkk7.com/sharky77/comments/commentRss/122079.htmlhttp://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鎴愪負杞歡寮鍙戝巻鍙蹭笂鐨勫厜杈夋洿鍔犵粴鐑?
    
       鏈変漢璇?寮濮嬫繪槸濂界殑.鎵浠?璧剁揣寮濮嬫妸.
        

鍥炲綊 2007-06-05 11:30 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 中文字幕亚洲专区| 在线观看亚洲AV每日更新无码| 99国产精品免费视频观看| 亚洲AV无码一区二区三区在线| 国产高清在线免费视频| 野花香高清在线观看视频播放免费| 亚洲成aⅴ人在线观看| 免费看小12萝裸体视频国产| 四虎国产成人永久精品免费| 色偷偷尼玛图亚洲综合| 亚洲AV永久纯肉无码精品动漫| 性感美女视频免费网站午夜| 和老外3p爽粗大免费视频| 亚洲三级高清免费| 亚洲精品国产精品乱码不99| 国产精品视频永久免费播放| 久久免费观看国产精品88av| 精品国产日韩亚洲一区在线| 亚洲一区二区三区日本久久九| 亚洲&#228;v永久无码精品天堂久久| 久9这里精品免费视频| 一级白嫩美女毛片免费| 亚洲五月综合缴情婷婷| 亚洲高清国产AV拍精品青青草原| 国产美女被遭强高潮免费网站| 57pao一国产成永久免费| 手机看片国产免费永久| 精品亚洲成a人在线观看| 亚洲一区电影在线观看| 久久精品亚洲日本佐佐木明希| 日韩精品亚洲专区在线观看| 国产福利在线免费| 精品一区二区三区免费毛片爱| 成人国产精品免费视频| 黄床大片30分钟免费看| 2020亚洲男人天堂精品| 亚洲欧洲另类春色校园小说| 久久精品亚洲综合| 久久99国产亚洲精品观看| 在线观看亚洲av每日更新 | 亚洲综合AV在线在线播放|