大话设计模式:1.简单工厂模式&UML类图
目录
大话设计模式:1.简单工厂模式 & UML类图
前几章应该比较简单,快速推进!
1. 设计一个计算器:基本的面向对象
- 界面逻辑 和 业务逻辑 分离
- 双目运算符类:Operation
- 两个操作数,私有字段
- 操作数的属性(get和set方法)
- (虚)运算方法:供子类实现
2. 简单工厂模式
如果业务中可能增加或删除实例化的对象,可以用单独的类来做创建实例的过程,所谓工厂即创建实例的工厂。在计算器的例子中,运算操作就是需要增加或删除的,除加减乘除外,还有可能增加开方,指数等运算。 简单工厂类
- 根据传入参数创建对应子类,并返回
客户端
- 声明父类Operation oper
- 通过简单工厂类创建所需子类,赋值给oper
- 给操作数赋值
- 通过多态,调用oper的方法,返回运算结果
3. UML类图
3.1. 类 & 抽象类
eg.动物
- 第一行:类名
- 第二行:属性/字段
- 第三行:操作/方法
- 类名斜体:抽象类
4. 接口
eg.飞(接口) & 讲人话(接口棒棒糖表示法)
- 第一行:接口名称
- 第二行:接口方法
- 棒棒糖表示法:接口在实现类中出现,类名在圆圈旁
5. 继承 & 实现接口
继承:——▶️,即空心三角形+实线 实线接口:···▶️,即空心三角形+虚线
6. 关联 & 组合 & 聚合
eg.雁群里有大雁(聚合),鸟有翅膀(组合),企鹅知道环境(关联)
本质都是类间关系都是has-a关系
- 组合:强的拥有关系,体现在初始化时,同时实例化(构造函数中),严格的整体与部分关系,整体和部分生命周期一样
- 聚合:弱的拥有关系,体现在A对象中包含B对象,但B对象不是A对象的一部分,即仅以字段/属性方式存在
- 关联:了解/知道,体现在有联系但没有明显的整体与部分的关联
- 组合 vs 聚合:组合关系,整体与部分生命周期相同,聚合关系,整体与部分生命周期不同
- 关联 vs 聚合:聚合关系,强调整体与部分,关联关系,多用于个体与环境,实现上都以字段的形式存在。
7. 依赖
表示类在某些方面需要依靠其他类,实现上,子类的方法需要其他类作为参数。