day11笔记
目录
一、单例模式
1.类型
1)单例模式-饿汉式
当获得到单例对象时,就已经是一个实例化后的对象
private static Boss boss = new Boss();
// 声明为私有的构造方法后,可以在当前类下正常调用
// 在当前类下定义一个自身类型的成员,用于接收(由私有构造方法创建)实例
// 使用static声明后,已经基本实现了功能
public static Boss getBoss() {
return boss;
}
2)单例模式-懒汉式
需要用到对象的时候才去实例化,每次实例化前先进行检查,如果已经实例化则直接取用
private static Boss boss;
// 通过static声明后的成员变量可以实现共享
// 通过其他方法获取实例后,通过set方法覆盖掉之前产生的实例
// 将已经获取到的单例实例传入,依然是单例本身
/*public void setBoss(Boss boss) {
}*/
public static Boss getBoss() {
// 每次返回的都是同一个实例
// 懒汉式:在使用时(getBoss)方法调用时先进行检查,如果已经实例化则直接返回,否则创建一个再返回
if (boss == null) {
boss = new Boss();
}
return boss;
}
2.案例
1. 案例场景
一个公司只有一个老板,各部门员工需要向老板汇报工作或发起流程申请
2.业务流程
老板有可能不在公司,在公司时可以正常处理工作,不在公司时员工的行为不能成功执行
3.模型设计
- Boss(单例模式->只有一个类的实例)
- 销售
- 行政
- 财务
4.实现过程
二、工厂模式
1. 案例场景
用户提出一个描述性的订购需求,直接联系到服装厂,服装厂根据用户的需求给出相应的回应
2. 业务流程
获取用户的需求信息,如果能够满足需要则通知相应的生产车间(实例化相应的对象),进行供货,如果不能满足(判空处理)则给出相应的回应
3. 模型设计
- 服装厂(接口)
- 夏季服装生产车间(服装厂的实现类)
- 冬季服装生产车间(服装厂的实现类)