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(依赖倒置原则):高层对象与低层对象互补依赖,它们都依赖于抽象(依赖于抽象而非具体)

  类图:

  

  实现代码:

 1 #region[抽象]
 2 public interface IVehicle
 3 {
 4     void Run();
 5 }
 6 #endregion
 7
 8 #region[低层对象]
 9 public class Bicycle : IVehicle
10 {
11
12     public void Run()
13     {
14         // 自行车的实现
15     }
16 }
17
18 public class Train : IVehicle
19 {
20     public void Run()
21     {
22         // 火车的实现
23     }
24 }
25 #endregion
26
27 #region[高层对象]
28 public class Client
29 {
30     public void ShowAVehicleRun(IVehicle vehicle)
31     {
32         vehicle.Run();
33     }
34 }
35 #endregion

具体操作

  

时间: 2024-12-25 04:41:07

EA UML 建模——类图的相关文章

UML建模类图

1.UML面向对象建模过程思路 first:通过需求分析,熟悉业务流程,可画出BPMN或者UML活动图 second:画出用例图 third:分析用例图找出确定的类以及相关类,以及参与者类:创建这些类的关联,画出初始类图:将有相同功能的类提取父类,形成继承或接口:类加关联多重性. -----上面三点是业务过程的类以及关联,另外更成软件系统还需要软件的界面,操作以及入口类---- forth:通过BPMN或者UML活动图,找出软件系统在实现过程中还需要的类以及关系,并完善类. 2.实践:某高校教务

20170908工作日记--UML画类图、HTTP协议、Volley源码走读

随手搜了一下,Android studio居然能够自动帮追我们生成UML的类图,简直太棒了http://www.gcssloop.com/course/UsePlantUMLInAS(Win),具体做法博客地址. 试了一下并不是根据Java文件自动生成的,而是需要自己写dot语法的相关代码,效果图如下,遂放弃 1.UML绘制类图 使用在线网站 https://www.processon.com/ 进行类图绘制.掌握基础绘制,如接口实现,继承关系等. 类之间的几种关系: 1.泛化--子类和父类的继

Uml学习-类图简介

类图(Class Diagram)简介  类图是面向对象分析(OOA,Object-Oriented Analysis)和面向对象设计(OOP,Object-Oriented Deisgn)思想的重要工具,是业务结构建模的重要工具. 需求中提到的各种业务概念,人物等,经过抽象后都可以视之为类.将某类东西归纳在一起,可以称为一个类,类有很多种提炼角度,需要根据系统的目标,业务的场景等,选取合适的角度对事物进行归纳. 类的识别: 1.  类的识别 将需求分析中遇到的人.物.概念识别为类,这是比较容易

UML学习(类图和序列图等)

visio绘制UML图使用visio 提示此UML形状所在的绘图页不是UML模型图的一部分 请问这个问题怎么解决?新建->选择绘图类型->选择软件与数据库模板->选择UML模型图->注意:如果不选择UML模型图的话,可能会出现无法编辑形状文本,提示“此UML形状所在的绘图页不是UML模型图的一部分,该形状设计用于利用UML模型图模板创建的绘图”所以利用Visio绘UML图第一步就是选择绘图类型为软件中的UML模型图. 还可以参考百度云盘的UML学习资料 参考:UML中几种类间关系:

UML-类图,包图

UML构造设计模型 一.类图 二.包图 三.组件图 四.部署图 一.类图 1.类:类由三格表示:类名,类的属性,类的操作 类名: 首字母大学 类的属性:-name:String     可见性 属性名:类型  =默认值 可见性包含4种:  + public     -private   #protected  *package 类的操作: +getName():String      可见性  操作名(参数):返回值类型 2.类与类之间的关系. 四种:关联关系: 泛化关系: 依赖关系:实现关系

UML关系类图

在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1. 泛化(Generalization) [泛化关系]:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为.例如:老虎是动物的一种,即有老虎的特性也有动物的共性. [箭头指向]:带三角箭头的实线,箭头指向父类         2.

【UML】类图的几种关系总结

在UML类图中,常见的有以下几种关系:泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1.泛化(Generalization) [泛化关系]:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种. [箭头指向]:带三角箭头的实线,箭头指向父类 2.实现(Realization) [实现关系]:是一种类与接口的关系,表示类

UML学习——类图(三)

1.类图 UML类图是用来描述类.接口.协作及它们之间的关系的图.用来显示系统中各个类的静态结构. 2.类图的组成元素 类图由以下六种元素组成:类,接口,泛化关系,关联关系,依赖关系,实现关系. 3.类图的绘制 3.1类图的表示法 类的UML表示为一个长方形垂直分为三个部分:顶部为类的名称部分,中间为类的属性部分,底部为类的方法部分.(下面两个区域是可选的) 类图属性和方法的命名:类型+名称(方法名/属性名)+默认值(可选)+返回值 如图 : 其中类型可有三种表示:-:private,+:pub

UML:类图复习-鸡生蛋,蛋生鸡

这是前一阵<高级软件工程>课堂上,老师随堂出的一道讨论题,随手贴在这里: ps: 今天是520,正好聊一些OoXx,关于爱的扯淡话题:) 题目:"鸡生蛋,蛋孵鸡",世间万物生生不息,如何用O-O中的类图以尽可能接近现实的方式来描述? 参考答案: 解析: 1.Chicken是基类,Hen(母鸡),Cock(公鸡)从Chicken派生, 2.Hen与Egg是关联关系,注意关联关系中的"重数"表示,从Hen向Egg的方向看去,0..*表示1只母鸡,可能下&qu