Delphi泛型結合接口的應用 (譯自Delphi2009 Handbook)

            通過接受一個限定的參數,這個參數是實現某個接口的類,比較起直接接受泛型,而限制這個泛型的類要更加靈活。也就是通常所說的面向接口式的編程。這樣可以達到調用實現了這個接口的各種泛型的實例。這種對泛型使用接口約束的應用,在.net框架中有很廣泛的應用。下面是一個實例(命名爲IntfConstraint)。

 

            首先,需要聲明一個接口:

 

         接下來我們定義一個類實現這個接口:

 

        精彩內容從下面開始,接着我們定義一個泛型類,這泛型類被限定了是實現了(我們上面定義的)指定的接口:

 

          這個類的泛型方法如下:

 

 

        有了如上的定義,我們可以這樣使用這個泛型類(數值型參數,接着還有其他類型參數的):

 

 

 

         爲了展現這個泛型類的靈活性,我又建立了一個完全不同的(對GetValue接口)的實現:

 

       

     ButtonValue中,生成按鈕座標位置(隨機位置,在父對象中)的成員函數,這個和主題關係不大,所以收縮

 

        ButtonVaule中GetVaule和SetValue實現:

 

 

       下面是第二種(按鈕座標)泛型類的使用:

 

 

 

 源代碼下載  (已添加了中文註釋)

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章