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 建模——类图的更多相关文章

  1. UML建模类图【2】--☆☆

    虚线箭头指向依赖: 实线箭头指向关联: 虚线三角指向接口: 实线三角指向父类: 空心菱形能分离而独立存在,是聚合: 实心菱形精密关联不可分,是组合: 上面是UML的语法. 在画类图的时候,理清类和类之 ...

  2. [UML]UML系列——类图class的关联关系(聚合、组合)

    关联的概念 关联用来表示两个或多个类的对象之间的结构关系,它在代码中表现为一个类以属性的形式包含对另一个类的一个或多个对象的应用. 程序演示:关联关系(code/assocation) 假设:一个公司 ...

  3. UML的类图关系分为: 关联、聚合/组合、依赖、泛化(继承)

    UML的类图关系分为: 关联.聚合/组合.依赖.泛化(继承).而其中关联又分为双向关联.单向关联.自身关联:下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里. 1.关联 双向关联:C1- ...

  4. [UML]UML系列——类图class的依赖关系

    相关文章          [UML]UML系列——用例图Use Case       [UML]UML系列——用例图中的各种关系(include.extend)       [UML]UML系列—— ...

  5. [UML]UML系列——类图class的泛化关系

    系列文章       [UML]UML系列——用例图Use Case       [UML]UML系列——用例图中的各种关系(include.extend)       [UML]UML系列——类图C ...

  6. [UML]UML系列——类图class的实现关系Realization

    系列文章 [UML]UML系列——用例图Use Case       [UML]UML系列——用例图中的各种关系(include.extend)       [UML]UML系列——类图Class   ...

  7. UML(一) 类图及类间关系

    原创文章,同步发自作者个人博客,http://www.jasongj.com/uml/class_diagram/ UML类图 UML类图介绍 在UML 2.*的13种图形中,类图是使用频率最高的UM ...

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

    随手搜了一下,Android studio居然能够自动帮追我们生成UML的类图,简直太棒了http://www.gcssloop.com/course/UsePlantUMLInAS(Win),具体做 ...

  9. UML建模—EA创建Class(类图)

    1.新建类图 2.添加类或接口 在类图可以捕获系统-类-和模型组件的逻辑结构.它是一个静态模型,描述存在什么,有哪些属性和行为,而不管如何去做. 说明关系之间的类和接口; 泛化. 聚合和关联是在分别反 ...

随机推荐

  1. 还是畅通工程 --HDOJ 1233

    还是畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  2. jquery mobile (一)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. 通过修改 Apache 的配置文件 htaccess 文件实现自定义404页面

    最近在学习使用Apache服务器的配置,做一个记录. Apache下有个.htaccess文件,是Apache的一个特殊的配置文件.这个配置文件默认是没有的,要手动在各自的项目的根目录编写才行. 要实 ...

  4. Linux内核学习笔记2——Linux内核源码结构

    一 内核组成部分 内核是一个操作系统的核心,主要由五个部分组成:进程调度,内存管理,虚拟文件系统,网络结构,进程间通信. 1.进程调度(SCHED) 控制进程对CPU的访问.当需要选择下一个进程运行时 ...

  5. WSAAsyncSelect模型

    ============================================== █ 异步选择(WSAAsyncSelect)模型是一个有用的异步 I/O 模型.利用这个模型,应用程序可在 ...

  6. JavaScript高级程序设计23.pdf

    document对象作为HTMLDocument的一个实例,它还有一些标准的Document对象所没有的属性,这些属性提供了网页上的一些信息 //取得文档标题 var title1=document. ...

  7. Lambda表达式与匿名方法

    在C#2中,由于有了方法组,匿名方法,类型的协变和抗变,使得运用delegate变得很容易,在注册事件时代码变得简单易读,但是在C# 2中,代码仍然有点臃肿,大块的匿名方法会降低代码的可读性,一般我们 ...

  8. books

    <<learning opencv>>,   布拉德斯基 (Bradski.G.) (作者), 克勒 (Kaehler.A.) (作者),   这本书一定要第二版的,因为第二版 ...

  9. MyBatis+Spring 事务管理

                 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://kinglixing.blog.51cto.com/34 ...

  10. [C#] c# 验证手机号码 最新的17手机号

    /// <summary> /// 校验手机号码是否符合标准. /// </summary> /// <param name="mobile"> ...