CleanAOP--簡介

cnffe 9年前發布 | 98K 次閱讀 CleanAOP 面向方面AOP/IoC

導語:

AOP為Aspect Oriented Programming的縮寫。 意為:面向切面編程。將日志記錄,性能統計,安全控制,事務處理,異常處理等代碼從業務邏輯代碼中劃分出來,通過對這些行為的分離,將它們獨立到非指導業務邏輯的方法中,進而改變這些行為的時候不影響業務邏輯的代碼。

</blockquote>

一:認識Aop

在日常的編程任務中,很多的代碼都是進行一些通用的功能(日志、檢測、一層處理等等),然后代碼都是機械般的復制粘貼,實際上的業務邏輯代碼只占不多的份額。那么,aop能更好的組織通用的代碼、然后以標記的方式讓某個方法切入,使得業務邏輯和通用代碼分離,使其互不影響。

使用Aop的優點

  • 容易擴展新的切面。
  • 業務邏輯與切面邏輯解耦合。
  • 對修改封閉、對擴展開放。
  • </ul>

    CleanAop支持語言

    C#

    版本歷史

    當前版本:v1.0.0

    • v1.0.0:框架搭建完成、支持同步異步、提供Demo切面(錯誤捕獲,log,時間記錄)、前后切面選擇。
    • </ul>

      哪里下載?

      1. github地址
      2. 網盤下載
      3. </ol>

        Demo測試案例

        1. 多切面、同步

          [TryCatchAttrubute]
          [LogAopAttrubute]
          [TimeAop]
          public virtual void DoWord()
          {
              throw new Exception("錯誤測試");
              Debug.WriteLine("123");
          }

          結果:

          開始捕捉異常([TryCatchAttrubute])
          開始執行([LogAopAttrubute])
          2015/11/5 0:47:19([TimeAop])
          錯誤測試(異常捕獲處理)
          執行中([LogAopAttrubute])
          執行結束,Void DoWord()方法([LogAopAttrubute])
          2015/11/4 23:47:19  [TimeAop])
          </li>

        2. 多切面、異步

          [TryCatchAttrubute]
          [LogAopAttrubute]
          [TimeAop]
          public virtual async Task DoWord()
          {
              await GetValueAsync(1234.5123, 1.01);
              Debug.WriteLine("123");
              throw new Exception("錯誤測試");
              Debug.WriteLine("123");
          }

          結果:

          開始捕捉異常([TryCatchAttrubute])
          開始執行([LogAopAttrubute])
          2015/11/5 1:05:23([TimeAop])
          執行中([LogAopAttrubute])
          123
          處理錯誤,錯誤信息為:錯誤測試([TryCatchAttrubute])
          執行結束,System.Threading.Tasks.Task DoWord()方法([LogAopAttrubute])
          2015/11/5 0:05:23([TimeAop])
          </li> </ol> https://github.com/Jarvin-Guan/CleanAOP/blob/master/README.md

 本文由用戶 cnffe 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!