EA UML 建模——类图

时间:2021-11-21 19:40:42

  Enterprise Architect(EA) 是一个功能比较强悍的建模工具,本篇文章仅使用其 UML 建模功能,其他更多功能,可以Google。

 

  一、简单梳理C#中类与类、类与接口、接口与接口的关系

EA UML 建模——类图EA UML 建模——类图
一、继承 (子类 : 父类、子接口 : 父接口) 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#而言就了解 上面的三种关系足矣
View Code

 

  二、下载、安装 EA及部分设置

  我在网上找到汉化新世纪汉化的"Enterprise Architect 8.0.858",及相应注册码打包到百度网盘(http://pan.baidu.com/s/1pJ9JKaZ

  安装过程略

  将默认代码模式设置为 C#,"工具 ==> 选项 ==> 代码工程" 代码工程默认语言改为 C#

  EA UML 建模——类图

 

  三、需要关注的几个ToolBox项目

  EA UML 建模——类图

  Class  类

  interface 接口

  标号1Generalize(泛化)就上面讲“继承”关系

  标号2 Compose(组成) 就是上面讲的“组成”关系  

  标号3 Realize(实现)就是上面将的“实现”关系

 

  四、画类图

  以王翔设计模式书LSP和DIP原则一节的例子为例

  LSP(里氏替换原则):子类可替换父类(实现可替换接口)

  DIP(依赖倒置原则):高层对象与低层对象互补依赖,它们都依赖于抽象(依赖于抽象而非具体)

  类图:

  EA UML 建模——类图

  实现代码:

EA UML 建模——类图EA UML 建模——类图
 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
View Code

 

具体操作

  EA UML 建模——类图