应用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)。

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

kissazi2
相关文章
小鹏汽车核心业务迁移至阿里云倚天实例,节省20%算力成本
9月20日,在2024云栖大会上,小鹏汽车宣布车联网、官网、商城、大数据等核心业务已迁移至阿里云倚天实例,节省了超过20%的算力成本。
284 14
跨年动态炫酷烟花网页代码
利用Html5的Canvas技术,模拟出逼真的烟花效果,让用户在网页上欣赏到绚丽多彩的烟花盛宴。同时,通过交互式设计,让用户能够与烟花互动,增加趣味性。
135 0
跨年动态炫酷烟花网页代码
云计算技术:从基础到实践
【10月更文挑战第4天】云计算技术:从基础到实践
物联网技术在物流领域的应用实例有哪些?
物联网技术在物流领域的应用实例有哪些?
1163 59
【专访】阿里云朱照远:边缘计算成为CDN下半场竞争新赛道
2019年4月10日,“2019亚太内容分发大会”暨“2019亚太CDN峰会”在北京正式召开,阿里云视频云总经理朱照远出席本次活动,并就CDN、边缘计算、共享计算、P2P技术等行业热门话题与技术趋势及前景进行现场沟通。
3384 0
🔍 Prompt、RAG、Fine-tuning三者各自的优势是什么?
【10月更文挑战第15天】在人工智能模型的开发中,Prompt、RAG(检索增强生成)和Fine-tuning是三种常见的优化技术。Prompt通过少量示例引导模型生成特定输出,简单灵活;RAG结合检索和生成,适合需要大量外部知识的场景,提高答案准确性和可解释性;Fine-tuning通过特定任务或数据集训练模型,提升特定场景下的表现,适用于有大量数据和计算资源的场景。开发者需根据具体需求选择最合适的优化策略。
354 4
Tablestore
Tablestore(表格存储)是阿里云提供的一种云原生、高性能、可扩展的 NoSQL 数据库服务。它支持海量数据存储和快速查询,适用于大数据分析、数据仓库、日志收集等场景。
726 1
【巡检问题分析与最佳实践】RDS PostgreSQL CPU高问题
当RDS PostgreSQL实例的CPU使用率持续较高时,很容易导致数据库访问卡慢的情况,例如一些很简单的查询请求的响应时间也会很久甚至超时失败。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等