C# Fluent Interface概念实例浅析

C# Fluent Interface是如何实现的呢?首先我们来看看Fluent Interface,直译过来是 “流畅(流利)的接口”,照字面有点难以理解,那么Fluent Interface是如何实现的呢?下面让我们从代码上向你介绍:

站在用户的角度思考问题,与客户深入沟通,找到文成网站设计与文成网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、网站制作、外贸营销网站建设、企业官网、英文网站、手机端网站、网站推广、空间域名、虚拟空间、企业邮箱。业务覆盖文成地区。

C# Fluent Interface代码实现:

 
 
 
  1. public interface IRect  
  2. {  
  3. void SetWidth(int width);  
  4. void SetHeight(int height);  
  5. }  
  6. public Rect : IRect  
  7. {  
  8. private int _width;  
  9. private int _height;  
  10. public void SetWidth(int width) { this._width = width; }  
  11. public void SetHeight(int height){ this_height = height; }  
  12. }  
  13. public static void Main(string [] args)  
  14. {  
  15. IRect rect = new Rect();  
  16. rect.SetHeight(10);  
  17. rect.SetWidth(50);  

没有什么花俏的东西,一个可设长宽的矩形接口并提供一个简单实现。接下来看看用另一种方式

 
 
 
  1. public interface IRectFluent  
  2. {  
  3. IRectFluent SetWidth(int width);  
  4. IRectFluent SetHeight(int height);  
  5. }  
  6. public RectFluent : IRectFluent  
  7. {  
  8. private int _width;  
  9. private int _height;  
  10. public IRectFluent SetWidth(int width) { this._width = width; return this; }  
  11. public IRectFluent SetHeight(int height){ this_height = height; return this; }  
  12. }  
  13. public static void Main(string [] args)  
  14. {  
  15. IRectFluent rect = new RectFluent();  
  16. 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有所帮助。

【编辑推荐】

  1. C# interface学习经验浅谈
  2. C# interface使用实例分析
  3. 浅析abstract class和interface的不同
  4. 详解abstract class和interface的本质
  5. 关于interface继承来源的讨论

名称栏目:C# Fluent Interface概念实例浅析
文章分享:http://www.shufengxianlan.com/qtweb/news42/31092.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联