设计模式

面试必备:设计模式与UML - 图1

  1. 细说简单工厂、工厂、抽象工厂的区别?
  2. 装饰器模式、外观模式的区别?

UML中的6大关系

图说设计模式
软件设计之UML—UML中的六大关系
面试必备:设计模式与UML - 图2

泛化继承 面试必备:设计模式与UML - 图3
- extends
- 表示一般和特殊的关系
实现 面试必备:设计模式与UML - 图4
- implement
- 类和接口之间的关系
关联 面试必备:设计模式与UML - 图5
- 代码体现:成员属性
- 拥有关系。一个类知道另一个类的属性和方法。
- 例如:父母与孩子
- 双向关联、单向关联、自身关联
聚合 面试必备:设计模式与UML - 图6
- 代码体现:成员变量
- 整体和部分的关系,部分可以脱离整体单独存在。
- 例如:班级与学生
- 即has-a的关系。
组合 面试必备:设计模式与UML - 图7
- 代码体现:成员变量
- 整体和部分的关系,部分不能脱离整体
- 例如:学校与班级
- 即contains-a的关系
依赖 面试必备:设计模式与UML - 图8
- 代码体现:成员变量、调用方法入参
- 一个类A使用到了另一个类B
- 例如:人和过河,需要一条船。人和船的关系。
- 这种关系是:偶然的、短暂的、非常弱的
关系强弱:泛化=实现>组合>聚合>关联>依赖