设计模式 1--单例模式
介绍设计模式的文章其实很多了,今天开始我打算把23个设计模式用自己的方式重新梳理一遍。以下是最简单也是比较常用的单例模式。
单例模式的定义是:确保一个类,只有一个实例,并提供一个访问它的全局访问点。
我们来用一个UML图示表示它,如下:

这个单例模式在我们日常的编程中应用还是比较多的。比如,我们在做各类基于数据库的这种信息系统时,要不停的访问数据库存取数据,意味着要频繁的建立数据库连接,但是数据库的连接资源是有限的,通常我们会创建一个连接池来进行管理。这个时候就需要通过单例模式来统一管理连接的创建、分配和回收。此外,像程序中的日志操作,也通常是需要通过单例模式来确保单一实例来操作日志文件,避免出现多实例同时写入造成的冲突。
单例模式的实现也比较简单,下面是一个Java示例代码:
1 | public class Singleton { |
代码中我们通过getInstance方法来获得Singleton这个类的实例,并且把它声明为static这样就可以直接通过类静态方法调用。因为这里我们判定了instantce是否已经存在,如果存在就直接返回,如果不存在才会创建,因此实例永远是单一的,不会被重复创建。
下面是一个调用代码的例子:
1 | public class Client { |