写点什么

Qi4j 提出面向组合编程思想

  • 2007-11-20
  • 本文字数:1073 字

    阅读完需:约 4 分钟

本周Rickard Oberg 在oredev 上宣布推出Qi4j,并宣称“类已死,接口万岁”。 Qi4j 带来了面向组合编程的新思想,提出类中不再放有任何的行为,取而代之的是,类成为混入(mixins)的‘组合’,并在类中使用标注定义接口。 Qi4j 本身是一个提供给所有 java 开发者使用的面向组合编程的 Java 框架。尽管面向组合编程需要较大的思想转变,但是面向组合编程不需要单独的工具、语言或 XML。Qi4j 的应用程序可以在 Spring 应用软件、Web 应用容器、OSGi 和其他地方运行。Qi4j 大量使用了标注,以此摆脱框架特定的知识,让开发者更关注业务规则。项目创始人 Rickard Öberg 和 Niclas Hedhman 在新闻稿中这样描述:

Niclas Hedhman 说:“Qi4j 是一个以领域为中心的应用开发框架,融入了从面向方面编程、依赖注入和领域驱动设计演化而来的思想,利用了 Java 5 平台和其生态系统”。Niclas Hedhman 是长期从事于 Java 框架的开发者,并且现在是 Apache 的活跃成员。

Rickard Öberg 说:“我需要一个能使领域模型和业务规则再度成为关注焦点、让领域专家和开发者能够清晰沟通的系统” 。Rickard Öberg 是以前 JBoss、Webwork 和 XDoclet 的创始人。

由于这仅仅只是框架和范型最初的展示,文档和例子还比较少。但是,面向组合编程的目标是完成从对象思考到组合思考的转变。组合由可复用的片段(fragments)组成。片段是Qi4j 的组成块 。片段携带组合成员的状态(在 mixins(混入)中)、验证和约束它们的使用(在约束(constraints)中)、处理横切点(在关注点(concerns)中)、并提供通知、缓存和撤销管理,以及其他异步需求(在副作用中)。编程范型的转变并不是件容易的事情。Oberg 这样描述对面向组合编程的反应:

人们一贯有两种反应:一是试图从脑海中扫除源于旧有经验的坏主意而头疼欲裂,一是理解我们所提思想的潜力而发出心领神会的微笑。

Qi4j 仍在更新,并且不稳定。此时,他们仍在致力于稳定框架,同时将面向组合编程思想推介给社区, 希望借此获得继续发展。他们也承认目前还没有充分准备好让大家深入到这个框架中,并建议大家在未来数个月中先侧重于概念理解。

查看英文原文: Qi4j introduces Composite Oriented Programming - - - - - -

译者简介:王军,长期从事软件开发工作,实际项目偏重于 JBOSS 平台上构建网管软件。对于性能测试工具有较多的关注,关心软件技术和相关工具的动态,将其中相对成熟的技术和工具应用到实际的项目之中。长期担任技术管理和项目管理工作,一直关心开源软件的发展动态以及软件过程和敏捷开发的实践探索。参与 InfoQ 中文站内容建设,请邮件至 china-editorial@infoq.com

2007-11-20 01:173350

评论

发布
暂无评论
发现更多内容

安全可信 | 强墙出击!天翼云Web应用防火墙(原生版)硬核亮相!

天翼云开发者社区

安全 防火墙

高级前端一面常考react面试题总结

beifeng1996

React

ERP系统是什么?能起到什么作用?

优秀

ERP系统

Verilog 时序控制

芯动大师

Verilog Verilog语法 Verilog时序控制

可视化:数据可视化的作用

Data 探险实验室

数据分析 可视化 数据可视化 数据大屏

Docker上手:step by step

无人之路

Docker

开放云主机端口

好吃不贵

Ubuntu无法切换到桌面tty7解决

Geek_pwdeic

ubuntu

80%的前端开发都答不上来的js异步面试题

loveX001

JavaScript

一年半经验如何准备前端面试

loveX001

JavaScript

高级前端一面必会react面试题(持续更新中)

beifeng1996

React

迎接工业互联网的龙卷风暴,软通动力绘制了一张转型地图

脑极体

数字先锋 | 主机、硬盘、CPU统统没有? 这个电教室有点“潮”!

天翼云开发者社区

云主机 云电脑

JAVA中生成随机数Random VS ThreadLocalRandom性能比较

JAVA旭阳

Java

那些你不知道的炫酷开关交互效果(12种)

南城FE

CSS 前端 交互设计

FLStudio2023中文版远程安装下载

茶色酒

flstudio FLStudio21 FLStudio21.0.0

中小企业运营自媒体为何多以失败告终

石头IT视角

Spark架构

穿过生命散发芬芳

spark 12月月更

创新研发负载分担机制,天翼云IPv6网络带宽再升级!

天翼云开发者社区

负载均衡 网络 ipv6

聚焦技术,锐意创新,GaussDB给世界一个更优选择

极客天地

Best Machine Learning Tools for Java

Mahipal_Nehra

Java AI Machine Learning tools best tools

Docker进阶:step by step

无人之路

Docker

一道React面试题把我整懵了

beifeng1996

React

纷繁复杂见真章 华为云大型产品需求管理利器CodeArts Req解读

极客天地

spring boot+mybatis整合

@下一站

MySQL mybatis 12月日更 12月月更 springboot框架

Python:界面开发,wx入门篇

eng八戒

Python PyQt GUI WxPython tkinter

一个将日志消息仅区分为 info 和 error 的实践分享

Tiger Wang

开源 最佳实践 日志

易观分析:手机银行季度活跃用户突破7亿人,个人养老金业务争夺战开启

易观分析

手机银行 个人养老金

知道这个网站你就不用买实体书了

邱比特讲编程

程序员 资源 电子书 大学生

JS模块化—CJS&AMD&CMD&ES6-前端面试知识点查漏补缺

loveX001

JavaScript

一天梳理完React所有面试考察知识点

beifeng1996

React

Qi4j提出面向组合编程思想_Java_Rob Thornton_InfoQ精选文章