为了账号安全,请及时绑定邮箱和手机立即绑定

UML——统一建模语言

标签:
Html/CSS

统一建模语言

    统一建模语言(英语:Unified Modeling Language,缩写 UML)是非专利的第三代建模和规约语言。UML是一种开发的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。
    现在来解释上面那段话是什么意思。在我们一开始开发软件的时候,因为软件结构还是比较简单,所以我们比不需要去分析软件的结构是什么样子。需要先写哪些类,哪些类里面具体实现哪些方法,这些都是直接存大脑里的。但是随着软件变得足够的复杂,过去这种原始的开发方式就显得力不从心。
    系统变得越来越大,代码越写越多,这时候先前因为没有做规划的弊端就暴露无遗。UML主要就是为了解决软件开发人员做规划时,通过画图的方式直观地架构这个系统的结构——类与类之间的关系。这也就是UML的作用。

模型

  • 功能模型:就是从用户的角度出发,描述程序都有哪些功能的模型图。

  • 对象模型:就是从程序设计的角度出发,描述一个程序的组织结构。图中有类、接口、属性、抽象类,各个属性之间的继承关系等。我们就可以逻辑清晰地编写代码。

  • 动态模型:就是表现出程序当中的内部行为。

使用

    往往很多教材一下就会给我们介绍还有多少种UML模型,具体每一个模型又代表了什么意思。但是我的教程里UMLGithub一样是我认为你最先应该了解到的两个基础的编程工具,UML可以帮你理清程序的结构,Github可以让你去了解大牛们的代码从中学习经验
    接下来,让我们通过具体的Java代码来了解UML图中的对象模型。

类图的结构

    如下图所示,我们建造了一个Person类的结构图。图中包括这几点信息:

  • 类的名称

  • 类的成员属性

  • 类的成员方法
    属性的表示方式如下所示:

可见性 名称:类型[=缺省值]
  • 可见性:public、private和protected,在类图中分别用+、-和#表示。

  • 名称:属性的名称。

  • 类型:属性的数据类型,可以是基本数据类型,也可以是用户自定义的类型。

  • 缺省值:可选项,表示属性的初始值。

webp

person

public class Person {  private String name;  private int age;  
  public void run(){
    ……
  }
}

类图关系

  • 关联
    。双向关联:你中有我,我中有你

    webp

    双向关联

。单向关联:我中有你,你中没我

webp

单项关联


。多重关联:一个餐厅里有许多服务员

webp

多重关联


  • 聚合:发动机可以独立于汽车存在,也可以按到汽车中

    webp

    聚合

public class Car {  private Engine engine;  public Car(Engine engine) {    this.engine = engine;
  }  public void setEngine(Engine engine){     this.engine = engine;
  }
}
  • 组合:嘴必须在脸上

    webp

    组合

public class Head {  private Mouth mouth;  public Head() {
    mouth = new Mouth();
  }
}
  • 依赖:司机必须得有车

    webp

    依赖

public class Driver{  private void driverCar( ){
      Car car = new Car();
      car.move();
  }
}
  • 继承:老师和孩子都是人类,他们有相同的属性

    webp

    继承

public class Teacher extends Person {
  ……
}public class Children extends Person {
  ……
}
  • 接口与实现:小船和车都需要动起来

    webp

    接口

public class Ship implements Vehicle{
  ……
}public class Car implements Vehicle{
  ……
}



作者:快乐的工程师
链接:https://www.jianshu.com/p/81df484324af


点击查看更多内容
2人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消