写点什么

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:173260

评论

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

SPL工业智能:原料与产品的拟合

石臻臻的杂货铺

工业智能体 SPL 10月月更

浅谈Vue3组件通信

CoderBin

Vue 前端 10月月更

React源码分析6-hooks源码

goClient1992

React

java培训学习后能高薪就业吗?

小谷哥

2022年9月国产数据库大事记-墨天轮

墨天轮

数据库 opengauss TiDB 国产数据库 KingBase

25分钟了解php?php基础

贤鱼很忙

php 10月月更

VoneBaaS团队成功入围第二届中国可信区块链安全攻防大赛决赛

旺链科技

区块链 产业区块链 VoneBaaS BaaS平台

一文详解 | 低代码发展的 “背后推手”

飞算JavaAI开发助手

React源码分析5-commit

goClient1992

React

【等保小知识】等保测评整体测评是什么意思?

行云管家

等保 等级保护 等保测评 等保2.0

广州云管平台有哪些?联系方式是什么?

行云管家

云计算 企业上云 云管平台 广州

java培训学习怎么选择培训机构

小谷哥

Apache Dolphin Scheduler 3.0.1 发布,对核心及UI相关进行优化

白鲸开源

海豚调度 Apache DolphinScheduler 任务调度 版本发布 新版本/特性发布

【开发者说】一课表,你的智能课业管理工具

HarmonyOS开发者

HarmonyOS

React Context源码是怎么实现的呢

flyzz177

React

Zebec地平线节点运营计划,Web3流支付赛道或多一条全新公链

鳄鱼视界

公共数据开放落地细则探讨,企业如何合规取用?

Jessica@数牍

安全隐私 公共数据开放 安全合规

激活工具带毒,静默安装360、2345系列软件

火绒安全

安全 下载器 病毒 恶意软件

DAPP系统开发Web3.0技术实现

薇電13242772558

dapp web3

深入分析React-Scheduler原理

xiaofeng

React

“超越融合 异筑信创”,AntDB数据库携手超云等生态伙伴共建信创大生态

亚信AntDB数据库

AntDB AntDB数据库 企业号十月PK榜 企业号十月 PK 榜

快手 RocketMQ 高性能实践

阿里巴巴云原生

阿里云 RocketMQ 云原生

React核心技术浅析

夏天的味道123

React

我对软件工程的理解

老张

软件工程 质量保障

leetcode 236. Lowest Common Ancestor of a Binary Tree 二叉树的最近公共祖先(中等)

okokabcd

LeetCode 数据结构与算法

Kubernetes 认证管理员(CKA)必过心得

HummerCloud

云原生 CKA #k8s Kubetnetes kubernetes 运维

React-diff原理及应用

xiaofeng

React

NFTScan 是什么?

NFT Research

区块链 NFT 多链 数据基础设施

参与中国信通院低代码&无代码市场调研问卷,浅抽超丰富奖池!

云智慧AIOps社区

大前端 低代码 数据可视化 无代码 低代码报告

ReactDOM.render在react源码中执行之后发生了什么?

flyzz177

React

React生命周期深度完全解读

夏天的味道123

React

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