设计模式概述
设计模式:是前辈们对软件设计所遇到的问题和解决方案等经验的总结。是一些套路和模板。本质是面向对象原则设计原则的实际应用。
UML中的类图:用于描述类的内部构成和类之间的关系,系统分析和设计阶段的重要产物,是系统编码和测试的重要模式。
- 类的表示方法如下:

- 类和类之间的表示关系:
- 关联关系:一个类中包含了某个类,说明这两个类有关联,从包含类指向被包含类,实线实心三角箭头表示。
- 聚合关系:也是一种关联关系,表示一种类由另一种类聚合而成,由“大类”指向“小类”,比如学校指向老师,这里如果学校不存在了,但是老师依旧存在,使用实线空心菱形箭头表示。
- 组合关系:更强的一种关联关系,表示一种类由另一种类组合而成,由“大类”指向“小类”,比如头指向嘴,如果头不存在了嘴就一定也不存在了,使用实线实心菱形箭头表示。
- 依赖关系:表示某个类中某个方法依赖某个类,比如Driver的drive(Car car),需要依赖Car类,由Driver指向Car,使用虚线箭头表示
- 继承关系:比较好理解,使用实线空心三角箭头表示,由子类指向父类
- 实现关系:使用虚线空心三角箭头表示,由实现类指向接口
软件设计原则:
- 开闭原则:对扩展开放,对修改关闭。使用接口和抽象类实现比较好。
- 里氏替换原则:任何基类(父类)出现的地方,子类一定可以出现,子类可以扩展父类的功能,但是不能改变父类原有的功能,也就是说在该位置 子类能够完全替换父类(父类原有的功能没有改变)。子类继承父类时,除了添加新方法外,尽量不要重写父类的方法.
- 依赖倒置原则:高层模块不依赖于低层模块,高层模块和低层模块都依赖于抽象;抽象不依赖于细节,细节应该依赖于抽象。
- 接口隔离原则:客户端不应该被迫依赖于其不使用的方法(比如A类有方法1和方法2,B类继承了A类,但是B类只使用方法1,不需要方法2,则违背了接口隔离原则)
- 迪米特法则(最少知识原则):如果两个实体无须直接通信,那么不应当发生直接的相互调用,可以通过第三方转发该调用。
- 合成复用原则:优先考虑使用聚合或者组合等关联关系来实现,其次才考虑使用继承关系来实现(如果是继承复用会产生很多类,如果用聚合复用则不会产生多个子类)
- (单一职责原则?)

