2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

评论

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

浏览器Blockstack.org全名字段输入限制缺失漏洞分析

qife122

网络安全 输入验证

Vibe Coding - 零成本使用claude code 、gpt-5、grok-code-fast-1氛围编程

小工匠

vibe coding grok gpt-5 Claude Code

真正“懂你”的输入法长什么样?讯飞用AI键作答

脑极体

AI

Aspire开启云原生开发新纪元:微软推出多语言应用开发平台

qife122

云原生 Aspire

AppCleaner & Uninstaller Pro 应用清理卸载工具

做梦万元户

Camsys 时间戳信息简介

地平线开发者

自动驾驶; 算法工具链 地平线征程6

工业管理 项目管理经验总结(28)

万里无云万里天

项目管理 工业 工厂运维

PCalc for Mac 万能计算器

做梦万元户

过程控制 软件维护经验总结(9)

万里无云万里天

工业 工厂运维 过程控制

智能车间管理系统:数字化驱动的车间全流程管控生态

深圳亥时科技

全栈协同 生态共筑——未来物联网开发者论坛深圳启幕,解码开发者落地新路径

新消费日报

CodeBuddy IDE 携手 Lighthouse 实现从设计、代码到部署全流程

六月的雨在InfoQ

CodeBuddy CodeBuddyIDE 无界生成力 CodeBuddyCode

2025年最佳AI摘要追踪工具全解析

qife122

AI搜索 搜索引擎优化

资本、开发者入局指南:鸿蒙生态的“高潜力赛道”找到了!

最新动态

进入新岗位的第一课——潜龙勿用

老李说技术

职场新人 职场发展 职场妙招

CSRF令牌保护的绕过技术详解

qife122

漏洞挖掘 CSRF攻击

Redis 搭建主从复用-读写分离和主备切换,及重要的关键词解释 部分3

刘大猫

人工智能 云计算 算法 物联网 大模型

GitHub 快速入门指南,新手必备的高效使用手册!

追逐时光者

GitHub

大数据-147 Java 访问 Apache Kudu:从建表到 CRUD(含 KuduSession 刷新模式与多 Master 配置)

武子康

Java 大数据 spark 分布式 Apache Kudu

用 Claude Claude + Kimi新模型跑通了 Obsidian 工作流,效率起飞!(附教程)

苍何

Fork for Mac Git客户端管理工具

做梦万元户

LLM 训练基础概念与流程简介

地平线开发者

自动驾驶; 算法工具链 地平线征程6

PyPI发布GitHub Action存在可注入表达式扩展漏洞

qife122

Github Actions 命令注入

2025年第39周数字取证与事件响应技术动态汇总

qife122

网络安全 数字取证

从“救火队长”到“AI指挥官”:传统运维的智能化跃迁之路

雅菲奥朗

人工智能 运维 AIOPS

ShardingSphere 联邦查询 GROUPING 聚合结果问题分析

端小强

#Calcite

浅析iGIX多语列的实现

inBuilder低代码平台

jpa 国际化 spring data 多语言支持 iGIX

司马阅将亮相第二十七届中国国际高新技术成果交易会,助力企业AI在严肃场景中精准落地!

司马阅

AI 生成代码,从 Copilot 到 Claude Code 的全景测评

掘金安东尼

Spring AI,一个让Spring应用轻松拥抱AI的统一框架

六边形架构

Java Spring AI LLM应用开发 Java大模型开发 Java接入大模型

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