目录
一、前言
本文将详细介绍类图应该如何画,如何画好一张类图。
二、内容
2.1、什么是类图?
要学习如何画类图的话那么我们首先要明确一下什么是类图?
顾名思义,类图是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。它既用于应用程序的系统分类的一般概念建模,也用于详细建模,将模型转换成编程代码。
2.2、类图的组成:
类名、属性、方法
2.3、类之间的关系:
继承、实现、依赖、关联、组合、聚合
2.4、绘制类图的格式:
类:
接口:
抽象类:
需要注意的地方:
- 接口一定有 <<interface>> 的标识,接口中的方法必须斜体(默认都是抽象方法)
- 抽象类名和抽象方法必须斜体,非抽象方法不斜体
- 注意访问控制符、返回值、参数等格式的正确性
- 类中属性、方法要描述全面
- 类中使用注解或者new的方式声明的其他类的成员变量也是该类的属性:
- 原因一:对此类本身而言,此类的类内结构包括属性(成员变量)和方法(成员方法)
- 原因二:对类间关系而言,虽然这个类与其他类(这个类声明其他类对象)之间有关联(或其他关系),但是这个关系是体现在类间的。
为使程序灵活、可扩展、可复用的角度出发,将程序service层架构设为3层,接口 -> 抽象类 -> 实现类。
2.5、至于为什么有了接口还要增加一层抽象类?
观点1:抽象类是接口与实现类之间的桥梁。
让抽象类去实现接口,而不是每个实现类去实现接口,实现类一致的行为(或者说大部分一致的行为)在抽象类中进行实现,而不一致的行为(或者一小部分不一致的行为),在抽象类中写成抽象方法,让子类去重写,减少子类重写接口所有方法的负担。
2.6、接口与类的设计原则
接口:接口隔离原则
接口应该尽量细化,一个接口对应一个功能模块。使接口轻便灵活,而不是臃肿不堪。要求“尽量使用多个专门的接口”,专门的接口是指提供给每个模块的都应该是单一接口(即每个模块对应一个接口),而不是建立一个庞大臃肿的接口来容纳所有客户端访问。
类:单一职责原则
代码中的具体体现,一个类中只能有一个 public 方法,而其他 private 方法都是为这一个 public 方法服务。也就是,对于外界来说,只能有一个方法仅供外界访问。
三、总结
接口和抽象类的区别?这个问题,相信大家从语法角度都能说上来1、2、3,我们学习一个技术不能只光会用就完了,要从思想上去总结统一:接口是自上向下的,因为它不用去管谁要去实现的,它是一种规范,是一种约束,但凡实现了该接口的类,从方法定义上去进行约束,而抽象类是自下向上的,抽象抽象,就是在几个不同的东西中找出相同的东西来,比如:狗、猫、老鼠等,这些都是动物,它们都有皮肤颜色这个属性,这些东西是有了狗、有了猫、有了老鼠之后抽象出来动物这么一个东西,是先有下层后有的上层,所以说抽象类是自下向上的;