关于Eclipse“分层法则”的使用

Erich Gamma 和 Kent Beck合著的《Contributing to Eclipse》一书中,提到了Eclipse的一些法则 。在扩展者相关的法则中,由“分层法则”一条,大致意思如下:“将语言无关的功能与特定于具体语言 的功能开发,将核心功能与UI功能分开”。

个人觉得虽然叫做“分层法则”,其实体现的是模块合理划分的思想。

现在重点关注一下“核心功能和UI功能分开”,说一下自己的经验,仅供大家参考。自己的经验是, 分层法则是在概要设计模块划分的时候就需要引入并严格遵守。

1、根据需求,对模块进行划分。典型的输出结果是:底层模块和生成功能模块,示意图如下:

说明:例如在做集成开发环境(IDE)的产品,底层基础模块包括了资源管理(包含编译处理)、运行 时候模型等类型的模块,当然也可能是workbench类似的模块(虽然是UI,但同样是底层基础模块),这 些底层模块为上层模块提供服务。上层功能模块类似于你创建了一种自己的基于GEF的编辑器等类型的模 块。

2、对各个模块分别进行核心功能和UI进行拆分。这其中既包含了对上层功能模块机型UI和核心功能的 拆分,也包含了对底层模块的拆分。示意图如下:

说明:到这里,我们的具体功能模块划分了如下:

com.myproduct.myeditor.ui插件(UI部分,例如包含了使用GEF创建了流程编辑器的代码)

com.myproduct.myeditor.core插件(模型部分,例如包含了EMF创建编辑器对应模型的代码)

我们也把底层的模块做了划分:

com.myproduct.resource插件(例如包含了builder等逻辑代码)

com.myproduct.refactoring.ui插件(重构功能,例如包含了一系列重构需要的UI代码等)

com.myproduct.refactoring.core插件(重构功能,例如包含了一些重构需要的模型代码等)

时间: 2024-09-16 08:20:56

关于Eclipse“分层法则”的使用的相关文章

计算机系统与逻辑层次

大家看看能否看得懂哦,呵呵! 最早的想法是产生于对OO方法的不满,主要的想法是将对象拆开为方法和属性以实现更加灵活的组合,在此之上构想了很多特性,但是过于零散,没有统一的理论,还肯定存在严重的特性冲突问题. 将计算机代码看做一个由逻辑实现的符号运算展开的结果,类似于元编程,自称为"逻辑宏",用逻辑宏实现声明式与过程式的结合,可以实现AOP,LOP,更理想的OO,等诸多特性. 认识到时间在语言表达中的重要性,因而提出了记忆机制,通过构造一个带有记忆机制,事件-动作响应的逻辑语言来实现代码

在Eclipse RCP中实现反转控制(IoC)

控制 Eclipse富客户平台(RCP)是一个功能强大的软件平台,它基于插件间的互连与协作,允许开发人员构建通用的应用程序.RCP使开发人员可以集中精力进行应用程序业务代码的开发,而不需要花费时间重新发明轮子编写应用程序管理的逻辑. 反转控制(Inversion of Control, IoC)和依赖注入(Dependency Injection, DI)是两种编程模式,可用于减少程序间的耦合.它们遵循一个简单的原则:你不要创建你的对象:你描述它们应当如何被创建.你不要实例化你的部件所需要对象或

【Eclipse插件开发】在什么情况下创建扩展点

我想绝大部分Eclipse插件开发人员对扩展点这个概念应该都比较熟悉了,那 么什么时候决定创建自己的扩展点呢?简单的说一下俺的看法,错了不要笑话. 为什么说这个问题呢?亲眼看到一些插件开发刚入门的人,不怎么懂得扩展 点相关的东西,也谈不上理解扩展点机制,所以这个时候从来不自己定义新的扩 展点:过了一段时间之后,感觉使用Eclipse扩展点有点经验了(尤其是 workbench相关的扩展点肯定经常使用),开始定义自己的扩展点了,....,灾 难发生了,乱定义扩展点,各种想法的扩展点都出来了....

Eclipse插件开发快速入门

刚才我在修理自己的汽车,我需要拧下一个螺丝.于是我打开自己的扳手工具包,试图找到合适的扳手.但是那些扳手的型号都不对,因为那个螺丝都属于公制标准的.我只能使用与理想尺寸最相近的扳手.这是一个不好的想法:结果我把那个螺丝弄裂了,只好去买一个专用的工具来下掉它.这个故事的精髓是:实现特定的事务永远需要使用恰当的工具. Eclipse是一个非常流行的Java集成开发环境(IDE),它是NetBeans/SunOne Studio.Jbuilder.和IntelliJ IDEA的强有力的竞争者.Java

了解Eclipse中的JFace数据绑定,第3部分: 使用高级功能

开始之前 关于本系列 "了解 Eclipse 中的 JFace 数据绑定" 系列教程的这一部分介绍了 Eclipse V3.2 中附带的新 JFace 数据绑定应用程序编程接口 (API) 的高级功能. 使用数据绑定 API 可以将您从必须编写样本同步代码的痛苦中解脱出来.JFace 数据绑定 API 为用户界面 (UI) 提供了这种功能,该功能是用 Standard Widget Toolkit (SWT) 和 JFace 编写的.系列教程的前一部分介绍了 API 中的基本组件.本部

工程分类-eclipse怎么把工程放到不同文件夹分类管理

问题描述 eclipse怎么把工程放到不同文件夹分类管理 eclipse工程数量太多,有多个项目,每个项目包含多个工程,我又不想每个项目放不同的工作空间,记得好像是可以用文件夹分类管理的,把同一个项目的工程放同一个文件夹,这样在看这个项目的时候就不会看到一堆其他项目的工程了,具体怎么做,求指教 解决方案 右键,新增java working set,选择工程加进去就可以了.也可以新建后拖动工程到文件夹 解决方案二: ..............每次打开eclipse时不是会弹出个保存工作空间的窗口

Java分层 service/action/DAO 总结

Java分层概念 service是业务层 action层即作为控制器 DAO (Data Access Object) 数据访问   1.JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分?(下面所描述的service层就是biz)        首先这是现在最基本的分层方式,结合了SSH架构.modle层就是对应的数据库表的实体类. Dao层是使用了Hibernate连接数据库.操作数据库(增删改查). Service(biz)层:引用对应的Dao数据库操作,

追本溯源 - Eclipse源码窥探

        最近花时间解决了一些以前积攒的,未曾深入研究的问题.其中一个就是eclipse maven 关联jar包源代码出现乱码的问题.问题的解决方案不算太麻烦,但是追本溯源确是件很有意思的事情(一直追踪到eclipse的源代码,探查到一些开源项目,如:伊利诺斯大学的开源项目CodingSpectator).当然了,RCP开发本身就挺吸引我的,后面有机会,会和大家分享更多的心得.好了,废话不说,既然知道了存在乱码问题,那么我们想想,eclipse maven插件是怎么绑定源代码的(恩,底层

信息交互设计金字塔法则

编者按:本文来自7月8日#36氪开放日#北京站,卓衡科技运营总监刘鹏的演讲,文中刘鹏讲述了他们在创业过程中总结出的交互设计的金字塔法则.卓衡科技是一家新兴的用户体验设计公司,为客户提供定制性的用户体验设计与移动互联网软件设计开发相关的全流程服务. 金字塔方法这个说法来源于美国著名的现代管理咨询公司麦肯锡.大致的意思就是:任何事情都能归纳出一个中心点,而此中心论点可以由数个一级论据支撑,这些一级论据也可以被数个二级论据支撑,如此延伸,状如金字塔. 当然,你也可以说这个说法最早来源于中国的老子,因为