#
设计模式概述

### 编程方法论   编写高质量代码的方法论,包含面向对象、设计原则、设计模式、编程规范、重构技巧等
### 代码质量评价   可读性、可维护性、灵活性、简洁性、可复用性、可测试性、可扩展性。有很多工具可以做代码审计,评价代码的抽象、耦合程度。
### 六大设计原则   设计模式中主要有六大设计原则,简称为SOLID,是由于各个原则的首字母简称合并的来(两个L算一个,solid 稳定的)。 * 单一职责原则 Single Responsibitity Principle * 开放封闭原则 Open Close Principle * 里氏替换原则 Liskov Substitution Principle * 接口隔离原则 Interface Segregation Principle * 依赖倒转原则 Dependence Inversion Principle * 迪米特法则 Least Knowledge Principle
### 设计模式 设计模式相关书籍,<设计模式:可复用面向对象软件的基础.pdf> 设计模式可大致分为三类,创建型、结构性、行为型。 ![设计模式分类](./%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F%E5%88%86%E7%B1%BB.png)
### UML图   统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。 ##### UML的分类   静态结构图: 类图、对象图、组件图、部署图   动态行为图: 状态图、活动图、时序图、协作图、构件图等。 在类的UML图中,使用长方形描述一个类的主要构成,长方形垂直地分为三层,依次放置类的名称、属性和方法。+表示public、-表示private、#表示protected、不带符号表示默认修饰符。抽象类及抽象方法都用斜体字表示,接口用<<Interfact>>表示。 ##### UML类图中类关系的表述 *类实现接口 虚线、空心三角箭头 *泛化(单向、双向关联、自关联) 实线、空心三角箭头 *聚合(A持有B,B在A的构造方法中new) 实线、空心方块 *组合(A持有B,B为注入的对象) 实线、实心方块 *依赖(A对象的某个方法某个入参为B对象) 虚线、虚线箭头