设计模式应该是在我们平常在项目中比较常见的,共23种,在一些框架中也是经常会遇到,下面就聊一聊我所知道的几种设计模式
1,单例模式
单例模式应该是比较常见,也经常老生常谈的模式,在项目中也是有使用的,单例模式顾名思义,在进程中只有一个实例,这个实例在上下线程中是公用的,例如在spring的容器中,同类的bean只能一个,这个就是单例模式的一个使用。
我们也可以提出一个问题,单例模式的定义是什么,为什么要使用单例模式,单例模式的好处是什么?
单例模式的定义,“一个类有且仅有一个示例,并且自行实例化提供给系统”,这个定义中不难看出来,在系统中对于这个类,只有一个这个类的实例,且是有自己示例化的。
为什么要使用单例模式,单例模式的好处是什么?
单例模式的好处原自他只有一个实例,这样代表着它只需要一块物理内存,且限制了实例的个数,这样对于这个类来说我们固定了变化,且省下了部分内存。这 些好处可以是我们使用的一个理由,还有一部分如果我们在定义一个独一无二的事务时列如太阳,月亮,这些独一无二的产品我们就可以作为单例使用
单例中还分为饱汉模式和饿汉模式,两个模式各有不同,饱汉可以理解为一个人并不饿,所以他就很不在乎是不是应该立马去做饭(实例化),会在饿的时候也就是使用的时候进行实例化,饿汉则不同,可以理解为一个人很饿,所以他会立马去做饭(实例化),这就是单例的两种模式,饱含和饿汉。
我们可以举一个简单的了例子,类如,我们去创建一个文件的网站,但是需要网站需要一些基本的文件的类型,但是这个文件类型肯定是在多个模块中使用的,这样我们就可以把这部分写为一个单例,这样在其他模块使用的时候可以直接调用此部分,这样既可以保证网站内的文件类型存在同一种,也可以在对文件类型进行控制