且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-08-13 12:26:56


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

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

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

 

一个简单的FluentInterface类设计

应用FluenceInterface设计让使用者更方便
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);
        }
    }
}
应用FluenceInterface设计让使用者更方便

测试类

应用FluenceInterface设计让使用者更方便
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次
        }
    }
}
应用FluenceInterface设计让使用者更方便

 

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

运行结果截图

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

实现的原理

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

本文转自陈哈哈博客园博客,原文链接http://www.cnblogs.com/kissazi2/archive/2013/04/22/3036604.html如需转载请自行联系原作者

kissazi2