zoukankan      html  css  js  c++  java
  • 应用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)。

  • 相关阅读:
    jQuery Validate 插件
    本地存储 web storage
    ajax简介及JS写原生ajax
    swiper插件简介及用法
    JavaScript中的string对象及方法
    javascript数组中的方法
    面向对象
    logging模块具体补充
    模块补充
    内置函数总结
  • 原文地址:https://www.cnblogs.com/kissazi2/p/3036604.html
Copyright © 2011-2022 走看看