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