FluentInterface

Posted on 2011-09-01 13:15  绿里奇迹  阅读(594)  评论(0)    收藏  举报

FluentInterface是DSL里的重要概念其为业务人员和开发人员搭建了桥梁

假设BA要向开发人员表述构建一个“汽车”对象,传统的方式是这样

Car car = new Car();

car.setFrontWheel(...);

car.setRearWheel(...);

car.setWindow(...);

car.setCeiling(....);

这在JAVA领域很常见,但是这些可恶的set函数对于业务人员太过技术化,而且此类表现很罗嗦

使用fluentinterface后的方式是这样:

Car car = new Car().frontWheel(...)

                            .rearWheel(...)

                            .window(...)

                            .ceiling(...);

这样对于业务人员非常容易理解,并且整个实现显得不是很罗嗦,具体实现类似这样:

public Car ceiling(Ceiling ceiling){

     this._ceiling = ceiling;

     return this;

}

fluentinterface一般用于复杂对象的初始化工作,比如著名的JMock就使用了fluentinterface。

这样做的最大问题就在于,car已经不再是javabean了。

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3