原文地址:https://www.ibm.com/developerworks/cn/java/j-lo-compose/#icomments
https://www.ibm.com/developerworks/cn/java/j-lo-uidsl/
Demo程序在附件中
归纳:
1.要提供一组闭包操作: empty,above,beside
通过这些操作的组合,为实现任意复杂的布局提供了可能
2.元素组合的结果,也是一个元素,能够再次参与组合,极大的增加了扩展性
3.fluent interface(流式接口)
面对这个数学公式,你会如何编程?
ln(sin(x+y))
- 一般方法: Math.log(Math.sin(x + y))
- 流式接口:new
MyNumber(x+y).sin().log()
4.
任何一个强大的语言都是通过如下三种机制来达成这个目标的:
- 原子:语言中最简单、最基本的实体;
- 组合手段:把原子组合起来构成更复杂实体的方法;
- 抽象手段:命名复杂实体的方法,命名后的复杂实体可以和原子一样通过组合手段组合成为更复杂的实体。
作为程序员来说,用干净的代码实现出功能仅仅是初级的要求,更重要的是要提升通用语言的层次,构建出针对特定问题领域的语言(DSL),这个过程中很关键的一点就是寻找并定义出面向问题领域的 原子概念、组合的方法以及抽象的手段。

本文介绍了一种使用闭包操作实现复杂布局的方法,并探讨了流式接口的设计思想。通过empty、above、beside等操作符的组合应用,可以构建出灵活多变的UI布局方案。此外,文章还讨论了构建特定领域语言(DSL)的重要性及其核心要素。
309

被折叠的 条评论
为什么被折叠?



