文档章节

高效工作——EA使用技巧

白志华
 白志华
发布于 2015/10/18 10:55
字数 1120
阅读 7
收藏 0
点赞 0
评论 0

画图是在项目开发前期最重要的部分之一,EA(Enterprise Architect)作为一款强大的建模工具,由于自身集成了许多自动化的工具,比Rose要好用的多,自然受到很多人的追捧。以前也介绍过一些EA的强大功能《让工作更轻松——EA类图与代码同步》,今天依旧来介绍一些简单却很使用的技巧。


第一个技巧是巧用实现接口的类。

我们在项目中定义了接口,然后定义了接口中的方法,拿我现在做的一个项目来演示一下:


现在定义一个类,比如CardMgr来实现ICardMgr接口,选择“Realization”:


会弹出让你选择实现的方法。我们一般都会认为,既然是类实现接口,那么就应该全选,确定。就会显示出下面的样子:



类图画完以后,我们在画时序图的时候,调用CardMgr中的方法(消息1.5),发现方法中居然重复了2遍:


当然我们可以通过去掉“显示继承的方法”,这样就不会把继承的方法显示出来了。


你或许感觉这样很好,很方便了,那么,我说种情况,你再感觉还方便吗:
如果我接口ICardMgr又增加了类方法ModifyCardInfo,那么CardMgr怎么办呢?我曾经也找了很多方法,终于发现了一个快捷键Ctrl+Shift+O, 重载继承的方法,这样就可以了:

但是,如果我不是方法,而是删除方法呢?Ctrl+Shift+O只能来继承增加的方法,却不能去掉接口中删除的方法。所以这样的就需要去手动删除。如果工作量很大,会耽误很长时间,时间一长,出错的几率就会大大提高,还可能漏掉几个。

经过多次的实验,我发现了一个很好的方法:
只需要画接口ICardMgr,而CardMgr只实现ICardMgr,但是不要去继承方法,如图:


不用担心CardMgr中没有方法,按F11生成代码后,你会发现,CardMgr类中的方法,一个也不少。所以不用再去勾选那些方法了。而且上面出的介绍的现象也不会出现。在画时序图时,由于CardMgr中没有方法,所以选择的时候,直接选择的就是从接口中读取的方法,而且在更改接口后,由于是直接读取的接口中的方法,所以不会涉及到CardMgr的修改,这样即节省了时间,又应对了变化,可谓是一举两得的没事,你还会去辛苦的画CardMgr类么??

第二个技巧就是如何批量修改图。
其实如果你认真读过了我上面提到的那篇博文,那么你或许已经有了思路了。对,就是应用逆向工程,善用代码同步。
现在要求把IBLL层中的所有类的后缀由Mgr改为BLL,如何操作呢?你会去傻傻的修改么??看看代码同步功能吧:
先把IBLL层,生成代码:
然后在“根据包生成源码”的对话框中选择生成的路径后,点击生成。

然后用一个文件内容修改工具,把生成目录下的所有cs文件中的Mgr替换为BLL。(或者把cs都添加到一个项目中,然后全部替换。)我这里用的是一个工具,如图:

使用代码同步进行更改类名,结果居然没有成功,所以只要,把原来的类,包括包,全删除,然后采用逆向工程重新生成图:
(这里文件名可以不用修改,因为EA在生成类图时,是读取的文件中的类方法名或者接口名,而并非文件名)

根目录选择刚才类源码所在目录,语言选择对应的语言即可,然后确定。

我的成功了,你的呢?


好了,本文就到这里了,我只不过是抛砖引玉,还有许多技巧需要大家在实践中去挖掘和分享,希望你在发现有好的方法和技巧后,可以拿出来分享,我们处于一个知识共享的幸福年代!




版权声明:本文为博主原创文章,未经博主允许不得转载。

本文转载自:http://blog.csdn.net/xiaoxian8023/article/details/8276047

共有 人打赏支持
白志华
粉丝 29
博文 260
码字总数 57524
作品 0
长沙
程序员
Enterprise Architect基于SVN多人协作环境搭建

Enterprise Architect基于SVN多人协作环境搭建 本文简单介绍基于TortoiseSVN搭建Enterprise Architect多人协作环境的方法。 一、软件安装 1、版本管理工具TortoiseSVN 安装时需选择“command...

筱骏
2016/12/23
0
0
如何使用搜索技巧来成为一名高效的程序员

来源:http://www.ackarlix.com/2010/12/06/474 没有人是完全独立的孤岛,每个人都是整体的一部分。——约翰·多恩 对于缺乏编程知识的人来说,完全有可能编写一个网页或小程序。如果在用Goo...

Ackarlix
2010/12/06
310
2
[转]成为高效程序员的搜索技巧

文章作者:纸口杯 本文地址:http://www.y513.com/201102807.html 版权所有 © 转载时必须以链接形式注明作者和原始出处! 对于缺乏编程知识的人来说,完全有可能编写一个网页或小程序。如果...

Jacky.Wang
2011/03/03
0
1
告别码农,成为真正的程序员

本文是我借助 Google 从网上拼凑的文章,可能条理不是很清晰,希望对广大程序员们有些帮助。 一、成长的寓言:做一棵永远成长的苹果树 一棵苹果树,终于结果了。 第一年,它结了10个苹果,9...

justjavac
2013/12/25
6.2K
30
如何使用搜索技巧来成为一名高效的程序员

搜索技能的重要性 对于缺乏编程知识的人来说,完全有可能开发一个网页或一个小应用。如果运气够好,当你使用谷歌去搜索一些示例的时候,你有可能会搜索到现成的代码,并因此而完成工作。即便...

蓝神100
06/28
0
0
Facebook 内部高效工作 PPT 指南

Facebook 内部分享:不论你如何富有,你都赚不到更多的时间,你也回不到过去。没有那么多的假如,只有指针滴答的时光飞逝和你应该好好把握的现在,以下26张PPT的分享将为您带来时间价值管理的...

oschina
2015/08/25
15.4K
43
Python 高效编程技巧

[本文英文原文链接:Improving Your Python Productivity / 外刊IT评论] 我已经使用Python编程有多年了,即使今天我仍然惊奇于这种语言所能让代码表现出的整洁和对DRY编程原则的适用。这些年...

红薯
2012/12/25
11.7K
54
《A Seat at the Table》作者访谈录

本文要点 CIO(首席信息官)和IT领导者们必须重新定义他们的IT组织与其他企业之间的关系,只有这样才能利用DevOps带来的敏捷和开发周期的缩短。 传统的观点认为,IT部门是“业务”的一个独立...

Ben Linders
2017/12/27
0
0
"懒惰"Linux 管理员的 10 个关键技巧

转自:http://www.ibm.com/developerworks/cn/linux/l-10sysadtips/index.html 好的系统管理员区分在效率上。如果一位高效的系统管理员能在 10 分钟内完成一件他人需要 2 个小时才能完成的任...

flynewton
2010/09/28
0
1
fir.im Weekly - 2016 开年技术干货分享

开年上班,北上广的技术er 陆续重返“人间”。看到别人已返工写代码,竟然有种慌慌的感觉(ง •̀_•́)ง 勤奋好学如你,fir.im weekly 送上最新一波技术分享供你 “品味”…… 给iOS开发者...

风起云飞fir_im
2016/02/22
35
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Android LogUtil 日志优化 调试的时候打印 点击跳转

打印日志的时候,可以点击跳转 LogUtil.java public class LogUtil { private static boolean IS_DEBUG = BuildConfig.DEBUG; public static void i(String tag, String message) {......

Jay_kyzg
14分钟前
0
0
人工智能你必须掌握的32个算法(二)归并排序算法

归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子...

木头释然
16分钟前
0
0
第十四章NFS服务搭建与配置

14.1 NFS介绍 NFS介绍 NFS是Network File System的缩写;这个文件系统是基于网路层面,通过网络层面实现数据同步 NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netap...

Linux学习笔记
39分钟前
1
0
流利阅读笔记27-20180716待学习

生了娃照样能打,两位母亲温网会师 Lala 2018-07-16 1.今日导读 现今在生儿育女后回归事业的母亲们已经非常多见,但是很少有人想到,以高强度运动与竞争激烈为特色的竞技体育项目也会有 work...

aibinxiao
40分钟前
5
0
Guava 源码分析(Cache 原理【二阶段】)

前言 在上文「Guava 源码分析(Cache 原理)」中分析了 Guava Cache 的相关原理。 文末提到了回收机制、移除时间通知等内容,许多朋友也挺感兴趣,这次就这两个内容再来分析分析。 在开始之前...

crossoverJie
52分钟前
0
0
OSChina 周一乱弹 —— 如果是你喜欢的女同学找你借钱

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @guanglun :分享Michael Learns To Rock的单曲《Fairy Tale》 《Fairy Tale》- Michael Learns To Rock 手机党少年们想听歌,请使劲儿戳(这...

小小编辑
今天
669
19
NNS域名系统之域名竞拍

0x00 前言 其实在官方文档中已经对域名竞拍的过程有详细的描述,感兴趣的可以移步http://doc.neons.name/zh_CN/latest/nns_protocol.html#id30 此处查阅。 我这里主要对轻钱包开发中会用到的...

暖冰
今天
0
0
32.filter表案例 nat表应用 (iptables)

10.15 iptables filter表案例 10.16/10.17/10.18 iptables nat表应用 10.15 iptables filter表案例: ~1. 写一个具体的iptables小案例,需求是把80端口、22端口、21 端口放行。但是,22端口我...

王鑫linux
今天
0
0
shell中的函数&shell中的数组&告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析

影夜Linux
今天
0
0
Linux网络基础、Linux防火墙

Linux网络基础 ip addr 命令 :查看网口信息 ifconfig命令:查看网口信息,要比ip addr更明了一些 centos 7默认没安装ifconfig命令,可以使用yum install -y net-tools命令来安装。 ifconfig...

李超小牛子
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部