我最初接触这个概念是读自<<模式-工程化实现及扩展>>,另外有Martin fowler大师 所写http://martinfowler.com/bliki/FluentInterface.html

Fluent Interface实例

Java 类Country

  1. package com.jue.fluentinterface;
  2. public class Country {
  3. private String name;
  4. private int code;
  5. private boolean isDevelopedCountry;
  6. private int area;
  7. Country addName(String name) {
  8. this.name = name;
  9. return this;
  10. }
  11. Country addCountyCode(int code) {
  12. this.code = code;
  13. return this;
  14. }
  15. Country setDeveloped(boolean isdeveloped) {
  16. this.isDevelopedCountry = isdeveloped;
  17. return this;
  18. }
  19. Country setAread(int area) {
  20. this.area = area;
  21. return this;
  22. }
  23. }

调用类

  1. /**
  2. * @param args
  3. */
  4. public static void main(String[] args) {
  5. // TODO Auto-generated method stub
  6. Country china = new Country();
  7. china.addName("The People's Republic of China")
  8. .addCountyCode(1001)
  9. .setDeveloped(false)
  10. .setAread(960);
  11. }

主要特征:

Country 的方法返回本身country,使调用者有了继续调用country方法的能力.

优势

1.有时候我们需要根据传入的参数数目不同定义不同的构造器。使用 FluentInterface就可以随意传递想要的数据,并保持他们的连贯。

java中的应用

StringBuffer append方法

最新文章

  1. SNAT,是源地址转换,其作用是将ip数据包的源地址转换成另外一个地址
  2. 【学习笔记&amp;训练记录】数位DP
  3. Linux中exec()执行文件系列函数的使用说明
  4. 学习BFC
  5. CRC16校验
  6. ListView练习
  7. 【Ubuntu Java 开发环境搭建 】
  8. grub名词理解
  9. 【测试环境】cywin的简单介绍
  10. acm课程练习2--1005
  11. Jquery页面跳转
  12. 实现input输入时智能搜索
  13. SQL Server分页查询的万能存储过程
  14. 736. Parse Lisp Expression
  15. 关于slavetable
  16. SqlServer select * into 对应 Oracle语法
  17. CSS选择器、层叠相关的基础知识
  18. 查看APK包签名的方法。
  19. 2、Reactive Extensions for .NET(译)
  20. Ansi 与 Unicode 字符串类型的互相转换

热门文章

  1. [Luogu2852][USACO06DEC]牛奶模式Milk Patterns
  2. 【WC2001】【cogs358】高性能计算机(动态规划)
  3. [BZOJ1083] [SCOI2005] 繁忙的都市 (kruskal)
  4. java微信公众号开发token验证失败的问题及解决办法
  5. springMvc(一)
  6. Win7硬盘的AHCI模式
  7. JavaScript:方法&amp;对象大全
  8. ASCII代码
  9. 设计模式之生成器(Builder)模式
  10. 一篇关于Maven项目的jar包Shell启动脚本