UML类图和面向对象设计原则
UML类图
什么是UML
uml全称:Unified Modeling Language 一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。
UML的组成包括
元素(Model Element)、图(Diagram)、视图(View)和通用机制(General Mechanism)
- 模型元素: 代表面向对象中的类、对象、消息和关系等概念,是构成图的最基本的常面向对象系统分析与设计方法用概念。
- 图:是模型元素集的图形表示,通常是由弧(关系)和顶点(其他模型元素)相互连接构成的。UML图,包括用例图、协作图、活动图、序列图、部署图、构件图、类图、状态图,是模型中信息的图形表达方式
- 视图:是表达系统的某一方面的特征的UMI,建模元素的子集,由多个图构成,是在某一个抽象层上,对系统的抽象表示。多图形组成的抽象集合,包括用户视图、结构视图、行为视图、实现视图环境视图。用户视图是所有视图的核心,用于描述系统静态行为,描述系统的静态元素、包、类对象和他们之间的关系;行为视图标识系统动态的行为,描述系统运行时的交互关系,实现视图表述了系统中逻辑元素的分布,环境视图标识系统中物理元素的分布,描述系统中硬件设备与关系!。
- 通用机制:用于表示其他信息,比如注释、模型元素的语义等。另外,UML还提供扩展机制,使UML语言能够适应一个特殊的方法(或过程),或扩充至一个组织或用户。
UML类图之间的关联关系表示
关联关系
聚合关系: 成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在
组合关系: 存在整体对象中但是不能单独存在
依赖关系: 一个事物中使用了另一个事物
泛化关系: 描述父类与子类之间的继承
最常见的七中面向对象设计原则
单一职责原则(single Responsbility Principle ,SRP)
一个类只负责一个功能领域中的相应职责。或者可以定义为:就一个类而言,应该就只有一个引起它变化的原因。单一职责原则是实现高内聚、低耦合的指导方针。
开闭原则(Open Closed Principle,OCP)
一个软件实体应当对拓展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行拓展。
里氏代换原则(Liskov Substiution Principle ,LSP)
所有引用基类(父类)的地方必须能透明的使用其子类的对象。是实现开闭原则的重要方式之一。
依赖倒转原则
抽象不应当依赖于细节细节应当依赖于抽象。在是实现依赖倒转原则时,需要针对抽象层编程,而将具体类的对象通过依赖注入的方式注入到其他对象中。三种注入方式,构造注入设值注入接口注入这些方法在定义时使用的是抽象类型,在运行时再传入具体类型
接口隔离原则(Interface Segregetio Principle ISP)
使用多个专门的接口,而不是使用单一的总接口,即客户端不应该依赖那些他不需要的接口。
一个接口一个职责,
合成复用原则
尽量使用对象组合,而不是继承来达到复用的目的。
迪米特法则
一个软件实体应当尽可能少的与其他实体发生相互作用。
迪米特法则要求限制软件实体之间通信的宽度和深度,迪米特法则可以降低系统的耦合度,使类之间保持低耦合关系。不与陌生人说话。