前文:
成為.Net高手Delegate
是必備武器之一
今天小弟和大家分享我所認知的Delegate
一開始我們先來看看Delegate
到底是不是類別
範例解說:
宣告一個 voidDelegate
委託
1 | public delegate void voidDelegate(); |
執行結果:Yes 委託是一個特別的類別
但委託物件方式很特別 他在宣告時必須傳入**[建構子參數]** 而建構子參數是**[方法]**
成為.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)