<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      不忘本~接口

      返回目錄

      接口無疑是面向對象的程序設計中最重要的概念之一,它體現一種抽象,一種規范;即它只規定了具體的操作,而不對操作進行實現,它的實現由繼承它的類去完成;它是一種規范,即,它要求實現它的類要對它的成員完全實現才行.

      看一段代碼:

       1     /// <summary>
       2 
       3     /// 武器攻擊的通用接口
       4 
       5     /// </summary>
       6 
       7     public interface IAttack
       8 
       9     {
      10 
      11         /// <summary>
      12 
      13         /// 攻擊方法,被攻擊對象是一個敵人對象
      14 
      15         /// </summary>
      16 
      17         /// <param name="Enemy"></param>
      18 
      19         VCommons.VMessage Attack(Entity.Enemy Enemy);
      20 
      21     }

       

      對接口進行實現,看代碼:

       1     /// <summary>
       2 
       3     /// 木頭攻擊
       4 
       5     /// </summary>
       6 
       7     public class WoodAttack : Entity.IAttack
       8 
       9     {
      10 
      11  
      12 
      13         #region IAttack Members
      14 
      15  
      16 
      17         public VCommons.VMessage Attack(Entity.Enemy enemy)
      18 
      19         {
      20 
      21             return enemy.Notify(20);
      22 
      23         }
      24 
      25  
      26 
      27         #endregion
      28 
      29     }
      30 
      31     /// <summary>
      32 
      33     /// 鐵棒攻擊
      34 
      35     /// </summary>
      36 
      37     public class MagicAttack : Entity.IAttack
      38 
      39     {
      40 
      41  
      42 
      43         #region IAttack Members
      44 
      45  
      46 
      47         public VCommons.VMessage Attack(Entity.Enemy enemy)
      48 
      49         {
      50 
      51             return enemy.Notify(50);
      52 
      53         }
      54 
      55  
      56 
      57         #endregion
      58 
      59     }

       

      除了上面的接口之外,還有一種特殊的接口,它內部沒有任何元素,我們稱為標記接口。它不是為了調用者的期待而定義,其意圖是抽象,將那些不能抽象在一起的類,利用一個標記綁定起來,為其提供統一的接口。標記接口保證了調用方法的一致性。雖然強制類型轉換會引入具體依賴,卻不會有任何副作用,因為在方法實現中,設計者的期待本身就是要轉換的類型.

      看代碼:(對象實現統一接口和對象具體實體類)

        1     /// <summary>
        2 
        3     /// 數據庫對象統一協調接口
        4 
        5     /// </summary>
        6 
        7     public interface IDataEntity
        8 
        9     {
       10 
       11  
       12 
       13     }
       14 
       15  /// <summary>
       16 
       17     /// 活躍值明細       
       18 
       19     /// </summary>
       20 
       21     public partial class ActiveRecord : IDataEntity
       22 
       23     {
       24 
       25         //初始字段
       26 
       27         #region original field
       28 
       29         
       30 
       31         /// <summary>
       32 
       33         /// 活躍值明細ID
       34 
       35         /// </summary>
       36 
       37         public String ActiveRecordID { get;  set; }
       38 
       39         
       40 
       41         /// <summary>
       42 
       43         /// 所有人ID
       44 
       45         /// </summary>
       46 
       47         public String UserID { get;  set; }
       48 
       49         
       50 
       51         /// <summary>
       52 
       53         /// 54 
       55         /// </summary>
       56 
       57         public Int32 Value { get;  set; }
       58 
       59         
       60 
       61         /// <summary>
       62 
       63         /// 收支類型  [資金流向],0-收入,1-支出
       64 
       65         /// </summary>
       66 
       67         public Entity.FlowType FlowType { get;  set; }
       68 
       69         
       70 
       71         /// <summary>
       72 
       73         /// 備注
       74 
       75         /// </summary>
       76 
       77         public String Note { get;  set; }
       78 
       79         
       80 
       81         /// <summary>
       82 
       83         /// 時間
       84 
       85         /// </summary>
       86 
       87         public System.DateTime Createdate { get;  set; }
       88 
       89         
       90 
       91         /// <summary>
       92 
       93         /// 活躍值明細類類型 [默認為1, 為了以后做擴展使用] 
       94 
       95         /// </summary>
       96 
       97         public Int16 Type { get;  set; }
       98 
       99         
      100 
      101         #endregion
      102 
      103  
      104 
      105         //外延字段
      106 
      107         #region extensional field
      108 
      109  
      110 
      111         #endregion
      112 
      113  
      114 
      115         //構造函數
      116 
      117         #region constructed function
      118 
      119         
      120 
      121         /// <summary>
      122 
      123         /// 新建立的時候構造函數
      124 
      125         /// </summary>
      126 
      127         public ActiveRecord()
      128 
      129         {
      130 
      131         
      132 
      133         }
      134 
      135         
      136 
      137         /// <summary>
      138 
      139         /// 新建立的時候構造函數
      140 
      141         /// </summary>
      142 
      143         /// <param name="_ActiveRecordID">活躍值明細ID</param>
      144 
      145         public ActiveRecord(String _ActiveRecordID )
      146 
      147         {
      148 
      149             this.ActiveRecordID = _ActiveRecordID ;
      150 
      151             
      152 
      153         }
      154 
      155  
      156 
      157         #endregion
      158 
      159  
      160 
      161         //方法
      162 
      163         #region function
      164 
      165  
      166 
      167         #endregion
      168 
      169  
      170 
      171         //重寫方法
      172 
      173         #region object overrides
      174 
      175  
      176 
      177         #endregion
      178 
      179     }

       

       

       

      而在操作統一接口調用實體時,我們可以直接寫成接口類,而不用寫用具體類型

       1     /// <summary>
       2 
       3     /// 通用數據庫訪問接口
       4 
       5     /// </summary>
       6 
       7     public interface IRepository
       8 
       9     {
      10 
      11         /// <summary>
      12 
      13         /// 根據數據庫實體—》更新記錄
      14 
      15         /// </summary>
      16 
      17         /// <param name="entity"></param>
      18 
      19         void Update(IDataEntity entity);
      20 
      21    }

       

      注意,在實現時,我們需要將接口對象進行強類型轉換,這在標記接口中是可以的.

       1        public void Update(Entity.IDataEntity entity)
       2 
       3         {
       4 
       5 Entity.UserPointRecord _entity = entity as Entity.UserPointRecord;
       6 
       7 //as 返回 null 而不會引發異常
       8 
       9             if (_entity != null)
      10 
      11             {
      12 
      13                 /// 代碼邏輯
      14 
      15             }
      16 
      17             else
      18 
      19             {
      20 
      21                 throw new Exception("請傳入UserPointRecord類型的模型化對象");
      22 
      23             }
      24 
      25         }

       

      好了,講到這里,您是否對接口有了一種全新的認識呢!哈哈!

      返回目錄

      posted @ 2011-07-05 10:02  張占嶺  閱讀(717)  評論(3)    收藏  舉報
      主站蜘蛛池模板: 一本大道av人久久综合| 高潮潮喷奶水飞溅视频无码| 日韩中文字幕一二三视频| 麻豆成人av不卡一二三区| 全国最大成人网| 91精品国产免费人成网站| 乱人伦中文字幕成人网站在线| 亚洲精品一二三在线观看| 久久无码专区国产精品| 中文字幕结果国产精品| 少妇熟女久久综合网色欲| 精品无码国产自产拍在线观看| 欧美丝袜高跟鞋一区二区| 99久久无码私人网站| 国产片av在线观看国语| 99re视频在线| 精品无码老熟妇magnet| 丁香婷婷色综合激情五月| 国产真实乱对白精彩久久| 日韩人妻少妇一区二区三区| 樟树市| 免费无码一区无码东京热| 91亚洲一线产区二线产区| 亚洲综合一区国产精品| 精品 无码 国产观看| 1000部精品久久久久久久久| 亚洲狠狠爱一区二区三区| 国产一区精品综亚洲av| 亚洲日本韩国欧美云霸高清| 欧美在线观看www| 成人永久免费A∨一级在线播放 | 无码精品人妻一区二区三区中| 免费区欧美一级猛片| 亚洲成av人在线播放无码 | 18无码粉嫩小泬无套在线观看| 伊人av超碰伊人久久久| 国产情侣激情在线对白| 国产一级av在线播放| 在线精品自拍亚洲第一区| 激情综合网激情综合| 乱码午夜-极品国产内射|