#
设计模式概述
### 编程方法论
编写高质量代码的方法论,包含面向对象、设计原则、设计模式、编程规范、重构技巧等
### 代码质量评价
可读性、可维护性、灵活性、简洁性、可复用性、可测试性、可扩展性。有很多工具可以做代码审计,评价代码的抽象、耦合程度。
### 六大设计原则
设计模式中主要有六大设计原则,简称为SOLID,是由于各个原则的首字母简称合并的来(两个L算一个,solid 稳定的)。
* 单一职责原则 Single Responsibitity Principle
* 开放封闭原则 Open Close Principle
* 里氏替换原则 Liskov Substitution Principle
* 接口隔离原则 Interface Segregation Principle
* 依赖倒转原则 Dependence Inversion Principle
* 迪米特法则 Least Knowledge Principle
### 设计模式
设计模式相关书籍,<设计模式:可复用面向对象软件的基础.pdf>
设计模式可大致分为三类,创建型、结构性、行为型。

### UML图
统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。
##### UML的分类
静态结构图: 类图、对象图、组件图、部署图
动态行为图: 状态图、活动图、时序图、协作图、构件图等。
在类的UML图中,使用长方形描述一个类的主要构成,长方形垂直地分为三层,依次放置类的名称、属性和方法。+表示public、-表示private、#表示protected、不带符号表示默认修饰符。抽象类及抽象方法都用斜体字表示,接口用<<Interfact>>表示。
##### UML类图中类关系的表述
*类实现接口 虚线、空心三角箭头
*泛化(单向、双向关联、自关联) 实线、空心三角箭头
*聚合(A持有B,B在A的构造方法中new) 实线、空心方块
*组合(A持有B,B为注入的对象) 实线、实心方块
*依赖(A对象的某个方法某个入参为B对象) 虚线、虚线箭头