C# Fluent Interface概念實例淺析
C# Fluent Interface是如何實現的呢?首先我們來看看Fluent Interface,直譯過來是 “流暢(流利)的接口”,照字面有點難以理解,那么Fluent Interface是如何實現的呢?下面讓我們從代碼上向你介紹:
C# Fluent Interface代碼實現:
- public interface IRect
- {
- void SetWidth(int width);
- void SetHeight(int height);
- }
- public Rect : IRect
- {
- private int _width;
- private int _height;
- public void SetWidth(int width) { this._width = width; }
- public void SetHeight(int height){ this_height = height; }
- }
- public static void Main(string [] args)
- {
- IRect rect = new Rect();
- rect.SetHeight(10);
- rect.SetWidth(50);
- }
沒有什么花俏的東西,一個可設長寬的矩形接口并提供一個簡單實現。接下來看看用另一種方式
- public interface IRectFluent
- {
- IRectFluent SetWidth(int width);
- IRectFluent SetHeight(int height);
- }
- public RectFluent : IRectFluent
- {
- private int _width;
- private int _height;
- public IRectFluent SetWidth(int width) { this._width = width; return this; }
- public IRectFluent SetHeight(int height){ this_height = height; return this; }
- }
- public static void Main(string [] args)
- {
- IRectFluent rect = new RectFluent();
- rect.SetHeight(10).SetWidth(50); // checkpoint
- }
這種“鏈式"方法調用方式是不是更接近我們人腦的思維方式,更簡潔呢。沒錯, It's Fluent Interface。
個人理解的Fluent Interface 就是 在面向對象編程中,使用某種方式(通常但不限于使用 方法鏈方式)來實現更具可讀性,易用性的編程方式。而方法鏈的關鍵之處就是在方法內部調用***要返回調用者本身。
所謂Fluent借助于wikipedia的說法就是‘This style is beneficial due to its ability to provide a more fluid feel to the code."
說到這里,經常使用jquery的朋友肯定感覺很熟悉上面的使用方式。
沒錯,類似于 $('id').show().css('').fadeOut(); 這種就是一種Fluent Interface實現。
C# Fluent Interface的相關內容就向你介紹到這里,希望對你了解和學習C# Fluent Interface有所幫助。
【編輯推薦】