討論區快速選單
知識庫快速選單
討論區最近新進100則主題 CSSLP認證,將資安落實在軟體開發中
[ 回上頁 ] [ 討論區發言規則 ]
請問design pattern中的delegation的觀念
更改我的閱讀文章字型大小
作者 : meetblake(神谷篤司) 人氣指數超過10000點
[ 貼文 148 | 人氣 15218 | 評價 80 | 評價/貼文 0.54 | 送出評價 14 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/6/4 上午 11:38:59
假設某類別MATH有一個函式叫ADD,
但是在ADD中的實作,可能是藉由另一個類別MATHPARTNER所產生的物件來完成。
也就是說MATH將函式ADD的實作「委託」給MATHPARTNER來做。
請問我這樣解釋delegation對嗎?
另外在什麼情況下會動用到delegation這種技巧呢?
作者 : cancle(笨毛) 貼文超過200則
[ 貼文 276 | 人氣 2885 | 評價 830 | 評價/貼文 3.01 | 送出評價 12 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/9/3 下午 03:36:54
1. 委託, 就是 請別人幫忙做
2. 在整個專案裡 到處都嘛在 委託,

class B{};
class A
{
   B m_b; // 總不會是生出來暫記憶體的吧, 任何對 m_b 的叫用 就是 委託
 B * m_pb; // 也一樣丫 到時後 生一個 實體出來 叫用的話 還是委託
};

委託 不用想太多, 就是 叫別人來用
UML 裡面 只要用 -> 就代表 使用某一個 類別(介面)
這個動作 就叫 委托
作者 : programmer328(難玩)
[ 貼文 61 | 人氣 0 | 評價 570 | 評價/貼文 9.34 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/9/3 下午 06:08:13
to cancle

class B{};
class A
{
   B m_b; // 總不會是生出來暫記憶體的吧, 任何對 m_b 的叫用 就是 委託
 B * m_pb; // 也一樣丫 到時後 生一個 實體出來 叫用的話 還是委託
};

看不出是委託! B 是 A的成員.怎麼是委託?
作者 : cancle(笨毛) 貼文超過200則
[ 貼文 276 | 人氣 2885 | 評價 830 | 評價/貼文 3.01 | 送出評價 12 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/9/3 下午 07:29:11
大大..
B不是空的啞資料類別的話, 裡面的函式叫用, 都是叫做 委託

class B
{
void do_something();
}

class A
{
void process();
}

A::process()
{
 m_b.do_something() ; // 這個動作 就叫作 委託
// A 叫用 B 裡的 函式 作業 , 白話講, A請B幫忙處理
}

委託
講 難一點的話 就是 叫 介面 ( 純虛擬類別 )
講 簡單一點的話 就是叫 某個類別
講 白話一點 就是 呼叫函式

委託 只是 一個 專有名詞 用來描術 範式裡的 某個動作
"專有名詞" 有時後 是一個 泛稱, 並不代表是一個 新技術

話說那個:雲端技術,貌似有講跟沒講一樣
作者 : programmer328(難玩)
[ 貼文 61 | 人氣 0 | 評價 570 | 評價/貼文 9.34 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/9/4 上午 08:24:53
TO Cancel 我不知你的語法.有一點跟我的C#不同.
Class A 裡 包含 Class B 是主從的關係. 一個方法在 Class A裡執行 跟在 Class A 裡的 Class B裡的方法,甚至於 ClassA.ClassB.ClassC.Method()執行.都視同於 ClassA.Method(),這不叫委派.尤其在OO下.外在的世界不用知道裡面怎麼跑.

ClassA 裡包含 ClassB 跟 ClassC,ClassD... A視為呼叫端.他要去執行 ClassB的方法.但ClassB的方法邏輯在 ClassC 或 ClassD了實作上.ClassA可以依邏輯去指派ClassB的方法是要執行ClassC或ClassD這才叫委派.

也就是 ClassB 跟 C,D之間沒有從屬關系,而是委派關係.
作者 : programmer328(難玩)
[ 貼文 61 | 人氣 0 | 評價 570 | 評價/貼文 9.34 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/9/4 上午 08:34:53
一個範例
public interface IRun{
    void Run();
}

public class ClassB{
     public void Do(IRun runObj)
     {
     runObj.Run();
     }
}

public class ClassC:IRun()
{
     public void Run()
     {
     Console.Write("委派方法C");
     }
}

public class ClassD:IRun()
{
     public void Run()
     {
     Console.Write("委派方法D");
     }
}

public class ClassA{
     public static void main()
     {
     ClassB b=new ClassB();
     b.Do(new ClassC());
     b.Do(new ClassD());
     }
}
作者 : cancle(笨毛) 貼文超過200則
[ 貼文 276 | 人氣 2885 | 評價 830 | 評價/貼文 3.01 | 送出評價 12 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/9/4 下午 12:06:25



大大=_=

上面有提到
要寫難一點 的 就用 介面去叫用

那大大這邊很明顯的是 叫用 介面去 執行功能

叫用 介面 跟 叫用 類別 函式 有什麼不同嗎? ^^

叫用類別函式 跟 直接叫用 函式 又有什麼不同呢?

很明顯 只是 實際函式存在的地方不同

委託 在 用法上 就只是 呼叫 某個東西 來用

並不是 某一種 程式寫法

範式本身的存在 是 複合式的
大大上面用了 多型 也用了 委託


2. 在上面 B *m_pb;
只要在 繼承一個C 出來 對 do_something 覆載
這可以是一個多型的部份


上面類別沒有再提出 介面 用來簡化
要寫多型也可以囉

如下
class B
{
virtual void do_something();
}

class C : public B
{
void do_something();
}

class A
{
void process();
void process(B *pB);
}

A::process();
{
  m_b.do_something();
}

A::process(B *pB)
{
 m_pb = pb;
 m_pb->do_something();
}

main()
{
 A a;
 C c;
 B b;
 a.process();
 a.process(&b);
 a.process(&c);
}

A::process(B *pB)裡用 m_pb 叫用 do_something
在main 裡看的出來是 a 裡 傳 c 進去 所以叫用的是 c::do_something();

所以 A 叫用了 C 的 do_something 這叫委託對吧
那. 為什麼 A 叫用了B 的 do_something 就 不能叫做委託呢? ^^
另外 直接使用 m_b.do_somethinc 不也是 委託.

那在簡化一點講
如果有一個全域函式
::do_something();
直接叫用.. 也是 委託
只不過 沒有任何的 擁有者
當然 這裡可以給一個 namespace 那用起來就會像
global_name::do_something(); 這也是委託..
作者 : programmer328(難玩)
[ 貼文 61 | 人氣 0 | 評價 570 | 評價/貼文 9.34 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/9/4 下午 01:30:29
你誤會我的意思了.
我的範例是透過ClassA 去指派 外在 ClassC,ClassD 給 ClassB.在OO裡 ClassA是一支使用者寫的物件.他可以指派哪一個Class 去給ClassB執行.所以叫委派.
而如果是 ClassB 裡有 ClassC或 ClassD,不管是ClassB直接執行或執行ClassC的方法.或ClassC去執行ClassD的方法.基本上都是內部執行.不是委派.因為ClassB是OO封裝內部實做了.所以使用者不能操作.裡面怎麼跑都對外在沒影響了.

實作多型,很多種樣式,我只是隨便做一種.怎麼做,做久了我也忘了什麼種類的設計方法了.
當然希望大家把自己方法提出.大家交流一下.

來一個方法委派.

Public Class ClassC{
   public void Run(string sender){
     //方法C
   }
}

public Class ClassD
public void Run(string sender){
     //方法D
   }
}

public Class ClassB{
     private delegation void Run();
     private Run runer;
     public ClassB(Run runer)
    {
     this.runer=runer;
     }

     public void Do()
    {
     if(this.runer!=null)
     this.runer("I am ClassB");
     }
}

public class ClassA
{
     //使用者的程式
     public static Main()
  {
     ClassB b=new ClassB(new ClassC().Run());
     b.Do();
     b=new ClassB(new ClassD().Run());
     b.Do();
     }
}
作者 : programmer328(難玩)
[ 貼文 61 | 人氣 0 | 評價 570 | 評價/貼文 9.34 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/9/4 下午 01:39:09
一個觀念.不是說給別的類別的方式去做就叫做委派.
如:我今天要將一個東西由甲地送到乙地.
如果我(人)物件,委派我的手物件去拿東西,我覺得不叫委派.因為手屬於我本身的一部分.
如果我委派某甲的手去將東西送到乙地.這才是委派.

相同的公司派員工去送貨.那不叫委派方式送貨.那是叫員工去送貨.
公司叫外面的通運公司送貨,這才是叫委託外面的公司送貨.
作者 : programmer328(難玩)
[ 貼文 61 | 人氣 0 | 評價 570 | 評價/貼文 9.34 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/9/4 下午 01:51:22
相同的公司派員工去送貨.那不叫委派方式送貨.那是叫員工去送貨.
公司叫外面的通運公司送貨,這才是叫委託外面的公司送貨.

上面我在說明一下.
對我們來說較員工或叫貨運公司來說影響不大.
但對要收貨的一端意義就差很大.你派員工甲乙丙丁對收方而言,是同一個體.但你派不同的貨運公司送貨就不同了.
作者 : cancle(笨毛) 貼文超過200則
[ 貼文 276 | 人氣 2885 | 評價 830 | 評價/貼文 3.01 | 送出評價 12 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/9/4 下午 02:14:44
送貨

公司A 委託 公司B 送貨
員工A 委託 員工B 送貨
公司A 私下叫 公司B 的員工送貨
員工A 自己叫 公司B 送貨
都行

只是 範圍的大小不同
總不能說 類別 寫太小 就不叫委託
要寫 大的類別 才叫委託吧

介面A 叫用 介面B
類別A 叫用 類別B
函式A 叫用 函式B
也只是 範圍大小不同
函式A 也能叫用 介面B
介面A 也能叫用 類別B

那 介面A 介面B 類別A 類別B 函式A 函式B
存活在那個範圍 跟 誰去 "委託" 誰 沒什麼關係

A 能用 B
B 也能用 A
當然 A 用自己(左手或右手自己來 =_=) 也行丫

patterns 裡composite 不一定要 分兩個類別繼承
有一種實作 是 把 composite 寫在自己裡面 給自己叫用
這個 也是委託

委託 要用大點 也行
AP 叫 OS 的API 算不算呢? 委託作業系統幫忙作業
本地電腦 叫 別台電腦的 服務算不算呢? 請SERVER幫忙作業
答案是 算

介面的 放大版本說明的話
在DCOM 裡 的 分散部份
支援 遠端活化類別 並且 可以 叫用遠端函式
使用 proxy 的意思 也叫 委託
本地端 委託 某個部份 請它 去遠端把 需要的函式(介面) 叫回來 使用
叫回來後 本地端 委託 遠端活化後的 元件作業
多層委託 也是委託

有一個大大說
"JAVA裡到處都是委託"

意思就是..
忘了 "委託" 吧 這個專有名詞
有跟沒有是一樣的 =_=
作者 : spainpollo(班班西) 貼文超過200則
[ 貼文 351 | 人氣 215 | 評價 1030 | 評價/貼文 2.93 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/9/4 下午 03:20:49
看不到迴紋針?
結論是什麼?
總覺得cancle大的回答有點怪怪..
作者 : programmer328(難玩)
[ 貼文 61 | 人氣 0 | 評價 570 | 評價/貼文 9.34 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/9/4 下午 06:25:55
那是全部的Class都是你寫的,所以你感覺都一樣.
如果你寫給別人用或你用別人寫的Class就不一樣了.
如果別人寫的Class,我們不用在意裡面有沒有委派.我們只要傳參數過去.然後結果回來.我們不用知道別人的Class裡有多少內部的Class在跑.
而如果今天你寫給別人用.或用別人的.
比如我今天要用別人Class.這裡面80%邏輯是別人寫好的.而20%是要用我們的邏輯哪?
在.NET 裡很多用到這種樣式.
像字串比較,排序....
很多人都直接使用.而結果不會錯.
但有時候我們的邏輯跟人家不一樣.我們使用時就要委派我們的邏輯插入別人的Class裡.
比如我們常常做字串排序.
A,B,C,D.....1,2,3,4...一般來說都不會排錯.但中文排序哪?有幾個知道怎麼排的嗎?
今天如果客戶要求用ㄅㄆㄇㄈ去排?要求筆劃去排哪?
本來你買來的Class 不支援哪?怎麼辦.
寫得好的Class會想到這裡.用委派.你自訂Class去實作演算法.然後插入到別人的Class裡.他就可以做到你要的功能.而不用在買Class或整隻Class重寫.
作者 : cancle(笨毛) 貼文超過200則
[ 貼文 276 | 人氣 2885 | 評價 830 | 評價/貼文 3.01 | 送出評價 12 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/9/4 下午 08:11:06
結論就是  不用管 delegation 
delegation 沒有任何意思
Delegation 就只是一個 member , 管他是 介面,指標,參考,或是實體
總要有東西指到, 才能去”委派”吧

我"叫"你去 工作
我"委派"你去 工作
我"請"你去 工作

叫, 委派, 請,
只是一個動作
不是一個技術

多型 不是 delegation
開放封閉 不是 delegation
library 跟 Framework 跟 delegation 也沒有關係

註:
library 意指
功能(函式)由別人寫好
我們自己寫流程使用lib

Framework 意思
流程由別人寫好
我們寫呼叫到的功能(函式)

這種 邏輯流程 誰寫的 跟 delegation 沒有關係


PS: 第三方的類別庫 一般 都是不能改的
但是 可以用 物件技術 轉接出來用 將動作改掉

小弟搞不懂的是
談繼承就談繼承
弄多型就弄多型
幹嘛 一定要多一個委派出來
然後在留一句 
"關於Inheritance和Delegation那個更好, 請各位自己評判" (沒力到不行)

那小弟反問大大
請問大大講的東西 不就是多型
跟 delegation 有什麼關係

再問 讓 邏輯 達到 開放封閉 的支援程度 跟 delegation 又有什麼關係

三問 在 Framework 下實作 函式 這個算是把自己的邏輯插入別人的類別了吧 而且是好大一組類別
這個又跟 delegation 有什麼關係

小弟對 繼承 有幾個要點一定尊守
最重要的第一點: 在沒有任何多型需求的情況下,絕不使用繼承

丫不使用繼承那怎麼辦
當然是 弄個 member 實體(當然用指標在配也行啦)

結果就跑了一個 ”委派”的關念 真的XXX
那委派不就只是等於一般用法嘛=_= 跟沒講一樣丫
作者 : programmer328(難玩)
[ 貼文 61 | 人氣 0 | 評價 570 | 評價/貼文 9.34 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/9/7 上午 08:49:33
委派,多型??這二個有個別的概念.
但這二個在實做時.可以混合運用組成很多設計樣式,達成你所需的功能.
不是說我用委派就不能用多型.多型就跟委派衝突.

而在我使用的.net技術.有委派這個Key Word. 這個就是函數指標的意思.
而委派再進階的應用就是事件處理.

而如果擴大去講.不實以委派這個Key Word或技術去講.以理論的觀點.
如ClassC(別人寫的,或廠商所寫).ClassA是我們寫.我們所寫A去用B但我們可以將C裡的某些功能,部分功能或功能中某個邏輯點.我們可以插入某些控制.如控制邏輯在A裡面.或你在寫ClassC然後將B的某功能委派到C裡面.或購買ClassD的原件.再將B廠商的功能委派到D廠商的實作.

而就你所說,ClassC裡可能有ClassE,ClassF...裡面也有C的方法委派至E或F...這是不是委派.如果你是ClassC的作者.這當然沒錯.但就ClassC的使用者來說就不是了.因為OO的概念.它被封裝了.我們不知道也不用知道裡面有ClassE跟ClassF
作者 : programmer328(難玩)
[ 貼文 61 | 人氣 0 | 評價 570 | 評價/貼文 9.34 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/9/7 上午 09:26:48
我不是專業作家.有時候不是寫得那麼清楚.而就實務上.很多設計概念是混搭的.而不是像教科書那麼單純.
來一個比較實務的委派.

public class ClassB{
     private delegation void Run();
     public Run Runer;
    
     private void DefaultRun()
     {
     //廠商預設實做,或Class作者預設時做
     }

     public void Do(){
     //上一次的Demo因為直接委派,所以可能被認為多型.
     //其實這裡有很複雜的演算法
     if(Runer==null)
     {
     DefauleRun();//當你沒委派時,就用廠商提共的演算法
     }
     else
     {
     Runer();//使用者提共的演算法.
     }
     //這裡也有很多演算法
     }
}

public class App{
     public static void Run()
    {
     //使用者的演算法
     }

     public static Main()
     {
     ClassB demoDefault=new ClassB();
     demoDefault.Do();
     ClassB demoUserLogic=new ClassB();
     demoUserLogic.Runner=Run;
     demoUserLogic.Do();
     }
    
}
作者 : cancle(笨毛) 貼文超過200則
[ 貼文 276 | 人氣 2885 | 評價 830 | 評價/貼文 3.01 | 送出評價 12 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/9/7 上午 10:14:36
大大.. 寫來寫去 還是 用多型丫
多一個 if 去比對 有沒有 實體 , Runer 能夠透過 繼承 去替換對吧, 也是多型.
    if(Runer==null)
     {
     DefauleRun();//當你沒委派時,就用廠商提共的演算法
     }
     else
     {
     Runer();//使用者提共的演算法.
     }

DefauleRun 在自己身上
Runer 在別人身上
不管 你叫用那一個 都是委派, 委派自己 委派別人 都是委派ㄇㄟ
委派自己(非虛擬函式) 一般不太會有多型的產生 , 沒有多型 當然 也可以叫做委派
委派別人在物件技術裡通常都會使用多型, 但不是一定用多型才稱為委派.
而是剛好 有多型.

那如果 委派別人時, 沒有使用多型呢? 那算不算委派, 答案是: 算

下面這個 =_= 貌似我上面寫了三次了 是用指標去比對也是多型ㄇㄟ

class TheDo
{
   virtual void OnDo();
}

class TheMyDo : public TheDo
{
   void OnDo();
}

class MyClassB
{
  TheDo *m_pDo;
  void do_something();
}

MyClass::do_something()
{
   if( m_pDo )
     m_pDo->OnDo();
}

有多型 不代表 沒有委派哦
m_pDo 是可以替換的 所以稱多型
但是 他是MyClassB 的 member
所以 也稱為 MyClassB 委派 TheDo類別架構


所以簡單再說一次
"委派" 是一個動作 沒有任何 技術 可言, 請以後改稱為"使用" ,
我"委派"了vector, 我"使用"了vector

我"使用"了 廠商提供的演算法
我"委派"了 廠商提供的演算法
我"使用"了 自己提供的演算法
我"委派"了 自己提供的演算法
只能講"委派" 跟 "使用" 是一樣的
 
"繼承" 是物件技術, 用來實作"多型"
作者 : programmer328(難玩)
[ 貼文 61 | 人氣 0 | 評價 570 | 評價/貼文 9.34 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/9/7 上午 10:58:47
Runer 能夠透過 繼承 去替換對吧, 也是多型//怎麼寫都可以.
你用繼承有二個問題.
1.如果你有很多要委派的邏輯.你是不是要寫很多的Subclass.如果你Subclass其他的地方要用,這還可以接受.如果只用一次,妳維護這一群Subclass就很辛苦.很多演算法你光命名就頭痛.而如果Base有很多可以自己抽換邏輯的地點.你寫的Class就更多了.
2.如果你用繼承的方式.你只能繼承然後Override原功能.問題繼承概念不是去Override.而是去擴充原功能.也就是baseclass繼承後去加新屬性跟方法.而如果你要繼承後Override.你要知道原方法裡的邏輯你才有辦法override掉.

像.net 3.5後就有LINQ,跟連巴達運算式,像
employees.Where(emp=>emp.No>0).ToList();
如果你每次Where條件(演算法)不一樣.你去寫subclass 你會寫到瘋.
作者 : chibiya(chibiya)
[ 貼文 4 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/10/12 下午 05:51:35
只要動用到組合(A 物件內含 B 物件或操作 B 物件)幾乎就會用到 delegation;譬如 Strategy、State 或 Proxy 等 Pattern。
 板主 : Clark
 > 物件導向程式設計 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 物件導向程式設計 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
物件導向程式設計
1 Arthur 180 
2 藍色LED 150 
3 長長 100 
4 Linkin 100 
5 love seeker 100 
6 Raymond 90 
7 Nets 80 
8 nop 70 
9 Huah 70 
10 矇矇 60 
物件導向程式設計
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2018 程式設計俱樂部 http://www.programmer-club.com.tw/
0.078125