开发者社区> shy丶gril> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

应用FluenceInterface设计让使用者更方便

简介:
+关注继续查看

image

--《设计模式_基于C#的工程化实现及扩展》

相信有用过jquery的朋友,会清楚Jquery在使用上经常是$().fun1(…).fun2(…)这种样式的。Fluent Interface就是用来实现这种调用方式的。

 

一个简单的FluentInterface类设计

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace testFluentInterface
{
    class FluentInterfaceClass
    {
        public FluentInterfaceClass SaySome(string sth) {   //应用Fluence Interface设计
            Console.WriteLine(sth);
            return this;            //返回对象本身
        }
        public FluentInterfaceClass SaySome2(string sth)  //普通的设计方式
        {
            Console.WriteLine(sth);
        }
    }
}
复制代码

测试类

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace testFluentInterface
{
    class Program
    {
        static void Main(string[] args)
        {
            FluentInterfaceClass fic = new FluentInterfaceClass();
            fic.SaySome("1").SaySome("2").SaySome("3");//连贯的调用
            Console.WriteLine("===============================================================");
            fic.SaySome2("1");              //调用1次
            fic.SaySome2("2");              //调用2次
            fic.SaySome2("3");              //调用3次
        }
    }
}
复制代码

 

从测试类中,我们可以发现FluentInterfaceClass中方法调用方式也非常简单,一直点下去就行。而普通的设计中,我们则需要通过写多次实体来调用实体的方法。

运行结果截图

image

实现的原理

      相信大家都看清楚了吧?使用连贯接口(Fluence Interface)的设计其实就是在方法的最后返回类实体本身(this)。


作者:kissazi2 
出处:http://www.cnblogs.com/kissazi2/ 
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载:http://www.cnblogs.com/kissazi2/archive/2013/04/22/3036604.html

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Java - interface
Java - interface
15 0
crontab环境变量问题
在crontab中运行脚本来查看hadoop相关信息,由于hadoop、java默认部署在/usr/local下面, 所以导致crontab执行时出现报错。具体与环境变量有关系,下文描述比较清楚。
890 0
+关注
1876
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载