面向对象编程语言中单例模式的实现
2017-08-16温振宏哈尔滨广厦学院
温振宏 哈尔滨广厦学院
面向对象编程语言中单例模式的实现
温振宏 哈尔滨广厦学院
单例(SingleTon)模式是面向对象编程语言中的一种软件设计模式。它为应用程序提供了对象的唯一的访问点,不管它实现何种功能,整个应用程序都会同享一个实例对象。本文以PHP语言及JAVA语言为实例具体讲解了单例式的实现。
单例模式 面向对象 PHP JAVA
1 面向对象编程语言
面向对象编程语言(Object-Oriented Language)借鉴了20世纪50年代的人工智能语言LISP,引入了动态绑定的概念和交互式开发环境的思想。始于20世纪60年代的离散事件模拟语言SIMULA67,引入了类和继承,成形于20世纪70年代的Smalltalk。面向对象编程语言是以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。
面向对象编程语言的发展分为两个方向:一种是纯面向对象编程语言,如Smalltalk,Java等。另一种是混合型面向对象编程语言,即在过程性语言中加入类,继承等成分,如C++,PHP等。下面就以PHP和JAVA为例讲解单例模式的实现。
2 PHP语言及Java语言
PHP是一种混合型编程语言,是HTML内嵌式的,用来制作动态网页的服务器端的脚本语言。其特点是:开发周期短,稳定安全,简单易学,免费开源,良好的跨平台特性。
JAVA是一种纯面向对象编程语言,具有简单、分布式、健壮性、安全性、可移植性、多线程、动态性等特点。
3 单例模式
单例模式,是一种常用的软件设计模式。它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例,而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。
单例模式主要作用是保证在面向对象编程中,一个类Class只有一个实例存在。在很多操作中,比如建立目录,数据库连接等都需要这样的单线程操作;一些资源管理器亦常常设计成单例模式;每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中;每台计算机可以有若干个通信端口,系统应当集中管理这些通信端口,以避免一个通信端口被两个请求同时调用,这就是单子模式。再比如,Windows回收站,在整个视窗系统中,回收站只能有一个实例,整个系统都使用这个唯一的实例,回收站是单例模式的应用。当然,Windows系统的帮助文档也是通过单例模式实现的。
4 单例模式实现
单例模式的实现需要有三个要点:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。
由两个实例结果,可以得知单例模式为一个面向对象的应用程序提供了对象惟一的访问点,不管它实现何种功能,整个应用程序都会同享一个实例对象。
5 单例模式总结
从具体实现角度来说,面向对象编程语言(PHP或JAVA)实现单子模式需注意以下三点:一是单例模式的类只能是有私有的构造函数或方法,二是类的定义中含有一个该类的静态私有属性,三是该类提供了一个静态的共有的函数或方法用于创建或获取它本身的静态私有对象。
TP393
A