前文:
成為.Net高手Delegate
是必備武器之一
今天小弟和大家分享我所認知的Delegate
一開始我們先來看看Delegate
到底是不是類別
範例解說:
宣告一個 voidDelegate
委託
1 | public delegate void voidDelegate(); |
執行結果:Yes 委託是一個特別的類別
但委託物件方式很特別 他在宣告時必須傳入**[建構子參數]** 而建構子參數是**[方法]**
Please disable your AD blocker to continue using this site. Ads help us keep the content free! please press keyboard F5 to refresh page after disabled AD blocker
請關閉廣告攔截器以繼續使用本網站。廣告有助於我們保證內容免費。謝謝! 關閉後請按 F5 刷新頁面
成為.Net高手Delegate
是必備武器之一
今天小弟和大家分享我所認知的Delegate
一開始我們先來看看Delegate
到底是不是類別
宣告一個 voidDelegate
委託
1 | public delegate void voidDelegate(); |
執行結果:Yes 委託是一個特別的類別
但委託物件方式很特別 他在宣告時必須傳入**[建構子參數]** 而建構子參數是**[方法]**
裝飾者模式是一個很精美且優雅的模式
本篇範例 文字內容->AES加密->Zip檔附加密碼->輸出儲存
情境
有個需求要做
文字內容->壓縮zip(附上密碼)->輸出儲存
又改成…
文字內容->AES加密->輸出儲存
需求又改成….
文字內容->AES加密->Zip檔附加密碼->輸出儲存
可發現需求一直在對於文字內容操作順序做變化,但他們核心離不開對於文字內容的操作
這種情境很適合來使用 [裝飾者模式]
裝飾者模式 有兩個主要角色 被裝飾物件(Decorated) & 裝飾物件(Decorator)
一般先有蛋糕被裝飾物件(Decorated),後再將裝飾物品加上去裝飾物件(Decorator)
被裝飾物件(Decorated)如下圖 蛋糕的原型
裝飾者模式是一個很精美且優雅的模式
本篇範例 文字內容->AES加密->Zip檔附加密碼->輸出儲存
情境
有個需求要做
文字內容->壓縮zip(附上密碼)->輸出儲存
又改成…
文字內容->AES加密->輸出儲存
需求又改成….
文字內容->AES加密->Zip檔附加密碼->輸出儲存
可發現需求一直在對於文字內容操作順序做變化,但他們核心離不開對於文字內容的操作
這種情境很適合來使用 [裝飾者模式]
裝飾者模式 有兩個主要角色 被裝飾物件(Decorated) & 裝飾物件(Decorator)
一般先有蛋糕被裝飾物件(Decorated),後再將裝飾物品加上去裝飾物件(Decorator)
被裝飾物件(Decorated)如下圖 蛋糕的原型
如果要製作月報…但只有給起訖日
要產生出如下的列表 要怎麼辦…
第一個想到的解法 會使用 WHILE + [暫存表]
迴圈遍歷 把每個月新增入暫存表中
程式碼如下:
1 | DECLARE @t TABLE |
但這個解法雖然簡單..但程式碼又臭又長..
Q: 有沒有更好看的解法又可達成目的呢?
ANS: 有!! 就是本次主角 CTE 遞迴
如果要製作月報…但只有給起訖日
要產生出如下的列表 要怎麼辦…
第一個想到的解法 會使用 WHILE + [暫存表]
迴圈遍歷 把每個月新增入暫存表中
程式碼如下:
1 | DECLARE @t TABLE |
但這個解法雖然簡單..但程式碼又臭又長..
Q: 有沒有更好看的解法又可達成目的呢?
ANS: 有!! 就是本次主角 CTE 遞迴
小弟之前有分享過串接【財政部查詢類電子發票API】小框架使用文
使用文連結 快速使用財政部電子發票API 使用 C#
串接文件下載 電子發票查詢API 1.4.4
程式原始碼連結
這次想跟大家分享我做出此框架的歷程..
框架目的:希望可以做出方便日後維護擴展的API。
串接API時發現他們有幾個共同之處
我就想到可以使用 工廠模式來實作這系列產品 (工廠模式主要是切割產品的使用和生產)
小弟之前有分享過串接【財政部查詢類電子發票API】小框架使用文
使用文連結 快速使用財政部電子發票API 使用 C#
串接文件下載 電子發票查詢API 1.4.4
程式原始碼連結
這次想跟大家分享我做出此框架的歷程..
框架目的:希望可以做出方便日後維護擴展的API。
串接API時發現他們有幾個共同之處
我就想到可以使用 工廠模式來實作這系列產品 (工廠模式主要是切割產品的使用和生產)
今天和大家分享AwesomeProxy.Net小弟開源AOP輕型框架
AOP 是 OOP(物件導向)一個變化程式撰寫思想。(非取代OOP而是擴充)
導入AOP幫助:
可幫我們分離核心邏輯跟非核心邏輯代碼,很好降低模組間耦合性,已便日後擴充。
非核心邏輯代碼像:(日誌記錄,性能統計,安全控制,事務處理,異常處理等代碼從業務邏輯代碼中劃分出來)
例如下圖:
原本寫法把寫日誌相關程式寫入,業務邏輯方法中。導致此方法非單一職則。我們可以把程式重構改寫成(右圖),將寫日誌方法抽離出來更有效達成模組化。
經典例子:
Asp.Net MVC中Contoller,Action過濾器(FilterAttribute)
今天和大家分享AwesomeProxy.Net小弟開源AOP輕型框架
AOP 是 OOP(物件導向)一個變化程式撰寫思想。(非取代OOP而是擴充)
導入AOP幫助:
可幫我們分離核心邏輯跟非核心邏輯代碼,很好降低模組間耦合性,已便日後擴充。
非核心邏輯代碼像:(日誌記錄,性能統計,安全控制,事務處理,異常處理等代碼從業務邏輯代碼中劃分出來)
例如下圖:
原本寫法把寫日誌相關程式寫入,業務邏輯方法中。導致此方法非單一職則。我們可以把程式重構改寫成(右圖),將寫日誌方法抽離出來更有效達成模組化。
經典例子:
Asp.Net MVC中Contoller,Action過濾器(FilterAttribute)