EA UML 建模——类图
Enterprise Architect(EA) 是一个功能比较强悍的建模工具,本篇文章仅使用其 UML 建模功能,其他更多功能,可以Google。
一、简单梳理C#中类与类、类与接口、接口与接口的关系
一、继承 (子类 : 父类、子接口 : 父接口) Is 子类 : 父类
abstract class Fruit{}
class Apple : Fruit{} 子接口 : 父接口
interface IBase{}
interface ISon : IBase{} 二、实现 (类 : 接口) realse
class Banna : IBase{}
class Cana : Fruit,IBase{} 三、组合 Has (类中有类,类中有接口,接口中有类,接口中有接口)
class House
{
//构造器中包含
House(IBase base){}
// 方法中包含
void Invoke(IBase base){}
//属性中包含
IBase BaseInter{get{return null;}} // 包含类
void Show(Banna b){}
} interface ISampleInterface
{
// 接口中有接口
void Show(IBase base); // 接口中有类
void Invoke(House house);
} 其实组合还可以分为 更细的,这个在OOA&OOD的书上讲的很多,不过我觉得 对C#而言就了解 上面的三种关系足矣
二、下载、安装 EA及部分设置
我在网上找到汉化新世纪汉化的"Enterprise Architect 8.0.858",及相应注册码打包到百度网盘(http://pan.baidu.com/s/1pJ9JKaZ)
安装过程略
将默认代码模式设置为 C#,"工具 ==> 选项 ==> 代码工程" 代码工程默认语言改为 C#
三、需要关注的几个ToolBox项目
Class 类
interface 接口
标号1Generalize(泛化)就上面讲“继承”关系
标号2 Compose(组成) 就是上面讲的“组成”关系
标号3 Realize(实现)就是上面将的“实现”关系
四、画类图
以王翔设计模式书LSP和DIP原则一节的例子为例
LSP(里氏替换原则):子类可替换父类(实现可替换接口)
DIP(依赖倒置原则):高层对象与低层对象互补依赖,它们都依赖于抽象(依赖于抽象而非具体)
类图:
实现代码:
#region[抽象]
public interface IVehicle
{
void Run();
}
#endregion #region[低层对象]
public class Bicycle : IVehicle
{ public void Run()
{
// 自行车的实现
}
} public class Train : IVehicle
{
public void Run()
{
// 火车的实现
}
}
#endregion #region[高层对象]
public class Client
{
public void ShowAVehicleRun(IVehicle vehicle)
{
vehicle.Run();
}
}
#endregion
具体操作
EA UML 建模——类图的更多相关文章
- UML建模类图【2】--☆☆
虚线箭头指向依赖: 实线箭头指向关联: 虚线三角指向接口: 实线三角指向父类: 空心菱形能分离而独立存在,是聚合: 实心菱形精密关联不可分,是组合: 上面是UML的语法. 在画类图的时候,理清类和类之 ...
- [UML]UML系列——类图class的关联关系(聚合、组合)
关联的概念 关联用来表示两个或多个类的对象之间的结构关系,它在代码中表现为一个类以属性的形式包含对另一个类的一个或多个对象的应用. 程序演示:关联关系(code/assocation) 假设:一个公司 ...
- UML的类图关系分为: 关联、聚合/组合、依赖、泛化(继承)
UML的类图关系分为: 关联.聚合/组合.依赖.泛化(继承).而其中关联又分为双向关联.单向关联.自身关联:下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里. 1.关联 双向关联:C1- ...
- [UML]UML系列——类图class的依赖关系
相关文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列—— ...
- [UML]UML系列——类图class的泛化关系
系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图C ...
- [UML]UML系列——类图class的实现关系Realization
系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class ...
- UML(一) 类图及类间关系
原创文章,同步发自作者个人博客,http://www.jasongj.com/uml/class_diagram/ UML类图 UML类图介绍 在UML 2.*的13种图形中,类图是使用频率最高的UM ...
- 20170908工作日记--UML画类图、HTTP协议、Volley源码走读
随手搜了一下,Android studio居然能够自动帮追我们生成UML的类图,简直太棒了http://www.gcssloop.com/course/UsePlantUMLInAS(Win),具体做 ...
- UML建模—EA创建Class(类图)
1.新建类图 2.添加类或接口 在类图可以捕获系统-类-和模型组件的逻辑结构.它是一个静态模型,描述存在什么,有哪些属性和行为,而不管如何去做. 说明关系之间的类和接口; 泛化. 聚合和关联是在分别反 ...
随机推荐
- POJ --- 1164 放苹果
放苹果 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 24947 Accepted: 15887 Description ...
- 整理:Google jQuery 引用地址大全和方法(转)
什么是google的js托管? 说的明白点,跟我们以往做法一样,只不过这时候的引用的js库是放在google服务器上的. 比如引用jquery,则使用路径 http://ajax.googleapi ...
- CPLEX IDE 菜单栏语言设置( 中文 英文 韩文 等多国语言 设置)
http://www-01.ibm.com/support/docview.wss?uid=swg21573032 Technote (FAQ) Question How to change the ...
- jQuery获取和设置disabled属性、背景图片路径
之前对于这个独特的disabled属性获取和设置很混乱,今天项目中用到了,用attr不能实现,于是多次试验得出: 获取disabled属性用prop $("#basic_key") ...
- JavaScript---网络编程(5)-自定义对象Json、Dom模型概念讲解
这节博客主要讲解Dom模型概念~和JSON的简单介绍 首先,还是先上out.js的代码: function println(param){ document.write(param+"< ...
- Xcode插件筛选
Xcode高效插件推荐 好像很多iOS开发的同学都不知道Xcode有插件这么一说,所以整理了一下自己用的Xcode高效插件,分享给大家 下列插件在Xcode 7.0.1 版本做测试通过可以使用 在Xc ...
- 在Mac下如何开Wifi
1. 首先打开系统偏好设置,选择共享 2. 把互联网共享给勾上 在里面选择共享来源为以太网,共享方式为Wifi 3. 点开Wifi选项,在里面设置密码(如果需要设置密码的话) 4. 然后看状态栏上的W ...
- 一步一步写一个简单通用的makefile(三)
上一篇一步一步写一个简单通用的makefile(二) 里面的makefile 实现对通用的代码进行编译,这一章我将会对上一次的makefile 进行进一步的优化. 优化后的makefile: #Hel ...
- MySQL 优化Limit分页
很多时候.我们需要选择出从指定位置开始的指定行数.此时.limit笑了 对于limit的定义是: limit x,y 表示从第x行开始选择y条记录 在业务需要 ...
- PTA 06-图2 Saving James Bond - Easy Version (25分)
This time let us consider the situation in the movie "Live and Let Die" in which James Bon ...