UML中常见代码实现
来源:互联网 发布:js return void 编辑:程序博客网 时间:2024/05/22 04:57
前言
UML中常见的有类图,接口,还有其中的几种关系,继承,实现,依赖,关联(特殊的有聚合和组合)。在此之前我对面向对象的一些方法做过一些总结,感兴趣的读者可以参看《面向对象三大特性》《面向对象》,其中对构造函数等等做了一些解释,这在理解代码实现的时候很有帮助。代码实现
接口
C# 版:一组函数成员而不实现成员的引用类型Java版:一系列方法的声明,一些方法特征的集合
在应用的时候我们往往把一些内容抽象出来作为一个方法,方便多个类的共享,同时我们也可以把一些内容抽象出来,但是具体的实现不同。
C#版:
<span style="font-size:18px;">interface IFly { void Fly(); } </span>
Java版:
<span style="font-size:18px;">interface IFly{ void Fly(); } </span>在使用中经常会看到abstract修饰符,abstract修饰类和成员方法,用该修饰符修饰的类称为抽象类,修饰的方法称为抽象方法,抽象类可以没有抽象方法,抽象类不能被实例化,抽象方法不提供方法体,具体的实现在实现它的类中提供。abstract修饰的方法要求子类实现这个方法,除非子类是抽象类。实代码如下:
<span style="font-size:18px;">interface IFly{ abstract Fly(); } </span>
实现
实现是类和接口之间的关系,C#中用冒号标识,而java中使用implements标识。
C#版:
<span style="font-size:18px;">Class Bird:IFly { void Fly { //具体实现 } } </span>
Java版:
<span style="font-size:18px;">Class Bird implements IFly{ void Fly{ //具体实现 } } </span>
继承
继承标识父类与子类之间的关系。
C#版:
<span style="font-size:18px;">Class Bird:IFly { void Fly { //具体实现 } }</span>
Java版
<span style="font-size:18px;">Class Bird extends IFly{ void Fly{ //具体实现 }}</span>继承和接口实现相比有什么劣势呢?接口相对来说更灵活,我们可以实现,也可以不实现,但是如果是继承,那我们就必须实现他所有的方法,如果其中一些方法对子类来讲并无意义,可想而知,那就是多余的, 并且我们可以实现多个接口,但是只能继承一个类。
依赖
C#版:
<span style="font-size:18px;">class Animal { void Fly(Oxygen oxygen) { } } </span>
Java版:
<span style="font-size:18px;">class Animal{ void Fly(Oxygen oxygen){ } } </span>
关联
聚合:脱离后两者还是可以存在的
C#版:
<span style="font-size:18px;">class bery { private Bird[] bird; } </span>
Java版:
第一种:较为灵活
<span style="font-size:18px;">class bery { private Bird bird; public SetBird(Bird bird) { this.bird = bird; //比较灵活 } } </span>
<span style="font-size:18px;">class bery { private Bird bird; public SetBird() { bird = new Bird(); //写死了 } } </span>
组合
例如,在鸟这个对象生成后,翅膀也随之生成,在代码中体现在构造方法中
C#版:
<span style="font-size:18px;">class Bird { private Wing wing; public Bird() { Wing = new Wing(); } } </span>
Java版:
<span style="font-size:18px;">class Bird { private Wing wing; public Bird() { Wing = new Wing(); } } </span>
总结
UML中的几种关系理解后对于理解设计模式非常有帮助,对照类图和代码去理解。
3 0
- UML中常见代码实现
- UML类图java代码实现
- UML类图java代码实现
- UML类图java代码实现
- UML中常见关系详解(泛化、实现、依赖、关联、组合、聚合)
- 6中常见的UML关系
- UML建模中常见的关系
- 快速排序中常见中轴选择方法及实现代码
- 常见算法的java实现代码(持续更新中)
- UML中关联,组合与聚合等关系的辨析 代码实现
- UML中关于类之间的五种关系以及代码实现案例分析
- uml类图的代码实现
- UML类图在代码中的实现
- UML类图五种关系的代码实现
- UML表示以及对应的实现代码
- eclipse中从代码生成UML图
- UML中关系在代码中的体现
- 6中常见的UML关系即自己的理解
- java相关问题梳理02
- 【codeforces 675E】【DP+线段树维护】【给出n个车站,并告诉你第i个车站有从i+1到a[i]个车站的直达票,问你所有车站到其余各个车站的最小车票花费和】
- 基于TCP协议的远程终端协议Telnet简介
- 利用cookie来做个浏览历史记录的案例
- Ubuntu 界面美化
- UML中常见代码实现
- eclipse设置代码自动提示
- [闲聊]搜索素数的一个方法
- elasticsearch 重启后,需要的操作
- hdu5908 Abelian Period 暴力 小小小小的优化
- opencv 学习之 图像色偏、清晰度、亮度检测
- 序列号SYN+确认号ACK
- 22
- OpenGL学习脚印:几何着色器(geometry shader)