注意:我这里以Java语言进行举例
单例模式
-
整体上,对于相同的类class,通过一个特点的方法来创建实例对象,并且在创建对应的实例对象的时候,只创建一个实例,如果有其他地方多次调用该类型的实例对象的话,都返回那唯一的一个实例对象
-
简单的理解就是:在项目的整体运行过程中,相同类型的Class,只有一个实例对象
-
对于单例模式的实现方式
- 饿汉单例:顾名思义就是在“饿”了之后直接创建实例对象
- 懒汉单例:顾名思义就是懒加载实例对象,需要用到对应类型的实例对象时才进行创建
静态工厂模式
- 整体上,就是定义一个类,充当工厂的角色,根据不同的参数,创建不同的实例。顾名思义,对于相同类型的Class对象也可以创建多个实例对象
- 静态的意思是:对应的工厂Class类的获取对应实例的方法时静态的
- 拓展:也可以结合单例模式来进行实现。 实现的功能:根据不同的
.Class类,创建不同类的实例对象,而且是单例的 - 这种设计模式一般会配合这其他一些常用的设计模式来进行使用,实现架构上的
架构!!! - 相对于通过构造器来创建对象时的一些优点
- 第一个优势,它们有名字
- 第二个优势,不用每次被调用时都创建新对象
- 第三个优势,可以返回原返回类型的子类
Class Person {
public static Person getInstance(){
return new Person();
// 这里可以改为 return new Player() / Cooker()
}
}
Class Player extends Person{
}
Class Cooker extends Person{
}