Java面试 第 7 章 设计模式

设计模式(Design Pattern)是一套被反复使用、经过分类编目的、代码设计经验的总结。

使用设计模式的目的是为了代码重用,避免程序大量修改,同时使代码更易于理解,并且保证代码可靠性。

Java面试 第 7 章 设计模式

常见的设计模式有工厂模式(Factory Pattern)、单例模式(Singleton Pattern)、适配器模式(Adapter Pattern)、享元模式(Flyweight Pattern)以及观察者模式(Observer Pattern)等。


7.1 什么是单例模式

在某些情况下,有些对象只需要一个就可以了,即每个类只需要一个实例。简单说来,单例模式(也叫单件模式)的作用就是保证在整个应用程序的生命周期中,任何一个时刻,单例类的实例都只存在一个(当然也可以不存在)。

单例模式确保某一个类只有一个实例,而且自行实例化,并向整个系统提供这个实例单例模式。单例模式只应在有真正的「单一实例」需求时才可使用。单例模式的设计类图如图 7-1 所示。

编码规范也明确指出应该要少用全局变量,因为过多使用全局变量,会造成代码难读;最后全局变量并不能实现继承(虽然单例模式在继承上也不能很好地处理,但是还是可以实现继承的)。而单例模式在类中保存了它的唯一实例——这个类,它可以保证只能创建一个实例,同时它还提供了一个访问该唯一实例的全局访问点。

使用单例模式,需要注意的是,单例模式用来保证系统中一个类只有一个实例。单例类的构造函数必须为私有,同时单例类必须提供一个全局访问点。

使用这种方法实现的单例模式,在类被加载时就会实例化这个类的一个对象,由于在使用之前对象已经创建好,因此,可以在多线程环境下使用这种方法。如果采用按需实例化的方法(在实例化对象在使用的时候才实例化),就需要考虑多线程的同步。

Java面试 第 7 章 设计模式


 

===============================

end