原文地址: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),这个过程中很关键的一点就是寻找并定义出面向问题领域的 原子概念、组合的方法以及抽象的手段。
相关推荐
界面布局语言介绍界面布局语言设计与实现关于设计的几点思考参考资料界面设计应该是一项充满创造性、富有乐趣的工作,但是却往往被认为非常的枯燥和繁琐。究其原因,是因为界面布局领域所采用的描述概念和具体的实现...
本项目标题所指的“基于Java的动态脚本语言(DSL)解析框架设计源码”,即是一个专门为处理动态脚本语言而设计的Java框架。该框架以Java语言为核心,采用模块化设计,能够解析不同类型的DSL脚本,并提供了丰富的API...
在这个项目中,我们聚焦于一个使用Java实现的DSL解释器的设计与实现,这是一份面向北京邮电大学(BUPU)学生的期末课程设计。 首先,我们要理解DSL的概念。DSL可以分为内部DSL和外部DSL。内部DSL通常嵌入到一个更大...
基于Java语言的专利检索式转换为Elasticsearch DSL的实现设计,是一种创新的解决方案,旨在简化专利检索流程,提高检索的效率与质量。 Java作为一门广泛使用的编程语言,其跨平台、面向对象的特性使得它成为开发...
1. 源代码:Java类和接口,实现了SQL到DSL的转换、JDBC驱动、与Mybatis和Spring的集成等核心功能。 2. 示例或测试代码:展示如何在实际项目中使用这个工具包,包括如何配置、如何编写SQL查询、如何在Mybatis或Spring...
本文将深入探讨基于Gradle的Java DSL入门级设计源码Demo项目,目的是帮助初学者快速理解和掌握Java DSL的应用。 该项目总计包含44个文件,其中18个为XML配置文件,这表明项目中可能包含了Spring框架的配置或者是...
专为DSL打造,相对与使用其它常见工具(javacc, antlr等)做DSL解析,代码量急剧下降;上手较为容易,让用户更加关注自身业务内容 需要jdk1.6或以上版本运行,无任何其它依赖 识别LL(*)语法 ...
基本要求1. 脚本语言的语法可以自由定义,只要语义上满足描述客服机器人自动... 程序输入输出形式不限,可以简化为纯命令行界面。 3. 应该给出几种不同的脚本范例,对不同脚本范例解释器执行之后会有不同的行为表现。
例如,Java源代码文件负责实现阅读器的核心功能逻辑,XML文件可能用于配置图书信息或其他数据,而PNG图片文件则可能用作阅读器的用户界面元素。 通过Gradle构建工具和其脚本文件,可以自动化项目的构建过程,简化...
MyApplication项目是基于Java语言开发的应用程序,其设计和实现涉及多个技术领域和文件类型。项目源码包含多种文件,分别用于定义不同的项目功能和资源。 XML布局文件是Android开发中用于描述应用界面布局的重要...
在Java平台上实现TR069,可以利用其跨平台的优势,实现对不同操作系统和硬件环境的支持。 首先,我们来看"JAVA平台下对TR069协议的实现.doc"这份文档。这很可能是一个详细的技术报告,阐述了如何在Java环境下开发一...
项目“基于Java语言的Elasticsearch 7.X SQL到DSL转换工具设计源码”正是为解决这一问题而生。 该项目是使用Java语言进行开发,其核心是提供一个将SQL查询转换为Elasticsearch DSL的转换工具,这一工具将极大地方便...
这表明文档将介绍Groovy在DSL设计与实现方面的特性和优势。 #### 标签解读 - **标签**: "groovy for dsl" 该标签进一步强调了文档的重点是Groovy在DSL领域的应用。这意味着文档将深入探讨Groovy语言如何支持DSL的...
WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...
总的来说,利用XText开发自定义DSL语言并实现表达式解释器,是一个涉及语言设计、解析理论和程序执行的综合过程。它可以帮助我们为特定任务创建简洁、高效的解决方案,并且XText的自动化工具链极大地简化了这一过程...
Gradle构建脚本文件用于自动化构建项目,Gradle是一个开源的自动化构建工具,采用基于Groovy的特定领域语言(DSL)来声明项目设置。属性配置文件和项目配置文件分别用于设置和管理项目的各种属性。JAR文件是Java归档...
WebSocket4J 是一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...
这个增强版的实现是基于JAVA语言,并利用了javacc5.0工具来完成语法解析和词法分析的部分。下面将详细讨论相关知识点。 1. **CMM语言**:CMM可能代表一种特定的编程模型或领域专用语言(DSL),用于解决特定问题。...