写点什么

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

评论

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

打造银行核心全栈国产化新模式,第三届数字金融技术创新与应用研讨会成功举办

先锋IT

一键生成视频!用 PAI-EAS 部署 AI 视频生成模型 SVD 工作流

阿里云大数据AI技术

人工智能 阿里云 AI视频

虚拟网络设备与Linux网络协议栈

GousterCloud

Linux Kenel

虚拟网络设备性能优化

GousterCloud

Linux Kenel 虚拟网卡

沙丘世界,如何抵抗勒索病毒的入侵?

白洞计划

网络安全

Linux虚拟网络设备深度解析:使用场景、分类与开发者指南

GousterCloud

Linux Kenel 虚拟网卡

微服务架构下,如何通过弱依赖原则保障系统高可用?

京东零售技术

Java 架构 后端 企业号 4 月 PK 榜

前端代码规范 - 日志打印规范

南城FE

JavaScript 前端开发 代码规范

掌握Linux虚拟网络设备:从基础到应用的全面指南

GousterCloud

Linux Kenel 网络设备

XML文档节点导航与选择指南

小万哥

xml 程序人生 编程语言 软件工程 前端开发

虚拟网络设备与网络安全:深入分析与实践应用

GousterCloud

Linux Kenel 虚拟网卡

云手机提供私域流量变现方案

Ogcloud

私域运营 私域流量运营 云手机 海外云手机 跨境云手机

避免IT项目延误的终极指南:揭秘10大原因及解决方案

爱吃小舅的鱼

项目管理 项目经理 IT项目管理

解密组合监控:优化系统性能的关键策略

观测云

监控

LangChain Agent:赋予 LLM 行动力的神秘力量

蛋先生DX

#人工智能 LLM #LangChain AI Agent 企业号2024年4月PK榜

嵌入式会越来越卷吗?

芯动大师

嵌入式 嵌入式软件 嵌入式应用

虚拟网络设备的网络隔离机制:原理、意义与应用场景深度分析

GousterCloud

Linux Kenel 网卡

随易周刊第002期 - 四象

前端之虎陈随易

程序员 前端 Web 周刊 技术周刊

Kafka 线程模型痛点攻克: 提升分区写入 2 倍性能

AutoMQ

Apache 云计算 大数据 kafka

体育赛事直播系统源码,用于搭建平台的价值与优势

软件开发-梦幻运营部

Linux虚拟网络设备全景解析:定义、工作模式与实践应用

GousterCloud

Linux Kenel 设备

虚拟网络设备的真正使命:实现有控制的通信

GousterCloud

Linux Kenel

Ascend C 自定义算子 Kernel Launch调用入门

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号2024年4月PK榜 自定义算子开发

用three.js做一个3D汉诺塔游戏(下)

OpenTiny社区

前端 three.js

常用Java代码混淆工具介绍及比较

雪奈椰子

Linux虚拟网络设备:底层原理与性能优化深度解析

GousterCloud

Linux Kenel 设备驱动

信息泄露漏洞的JS整改方案

文心一言 VS 讯飞星火 VS chatgpt (232)-- 算法导论17.1 3题

福大大架构师每日一题

福大大架构师每日一题

心态崩了,约了半个月,就只有3个面试!

王中阳Go

微服务 并发编程 面试题 面经 大厂面经

高维解码|Redis 收紧许可证!开源软件公司如何在云时代生存?

Zilliz

redis 开源 许可证 Zilliz 开源公司

MySQL 主从 AUTO_INCREMENT 不一致问题分析

快乐非自愿限量之名

MySQL 数据库

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