写点什么

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

评论

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

k8s 插件管理工具之krew使用

雪雷

6月日更

React Hooks - 如何安全地使用state

蛋先生DX

大前端 React React Hooks JavaScrip 6月日更

在Spring Bean实例过程中,如何使用反射和递归处理的Bean属性填充?

小傅哥

Java spring 小傅哥 反射调用 属性填充

详解Camtasia的注释功能

淋雨

视频剪辑 Camtasia 录屏

HarmonyOS 2正式发布 硬件生态品牌HarmonyOS Connect一同亮相

科技汇

手把手教你在IDEA中配置Maven

打工人!

Java maven 6月日更

你们公司的数据库出过问题么?

escray

学习 极客时间 朱赟的技术管理课 6月日更

微博评论的高性能高可用计算架构设计

唐高为

BZZ算力挖矿系统开发功能丨BZZ算力挖矿源码设计

系统开发咨询1357O98O718

Spring Boot FatJar类加载机制简要分析

luojiahu

Spring Boot 类加载 ClassLoader FatJar

深圳首辆数字人民币主题观光巴士亮相

CECBC

面试系列-2 redis列表场景分析实践

李阿柯

php 面试 redis cluster

分治(详解残缺棋盘 —— Java代码实现)

若尘

算法 分治 java代码 6月日更

面试系列-3 限流场景实践

李阿柯

php lua redis 面试 限流算法

【Vue2.x 源码学习】第二篇 - Vue的初始化流程

Brave

源码 vue2 6月日更

“扯皮”终结者,区块链帮农民工计薪水

CECBC

Dubbo SPI

青年IT男

dubbo

关于第四次财富狂潮的思考,区块链如猛虎出笼?

CECBC

致恰达耶夫,致鸿蒙

脑极体

Redis数据结构

邱学喆

数据库 redis 跳跃表

一文了解预训练语言模型!

博文视点Broadview

Hello Python! 第一天学 Pyhton 语言

在即

6月日更

情指勤一体化指挥调度平台搭建,情报研判分析系统搭建

ARTS- 日常打卡5

pjw

react源码解析4.源码目录结构和调试

全栈潇晨

React Hooks react源码

实现多级缓存架构设计方案

xcbeyond

缓存 缓存架构 6月日更

直击Huawei Mate 40产线背后的华为云IoT智能制造

华为云开发者联盟

IoT 数字化转型 数字孪生 华为云IoT

有点难的 webpack 知识点:Dependency Graph 深度解析

范文杰

webpack 6月日更

中断Hwi:提高鸿蒙轻内核系统实时性及执行效率的秘密武器

华为云开发者联盟

鸿蒙 硬件 中断 鸿蒙轻内核 中断信号

【Flutter 专题】114 图解自定义 ACEProgressPainter 对比进度图

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

GrowingIO 前端团队对于 GraphQL 的实践总结

GrowingIO技术专栏

大前端 graphql

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