UNIX进程组,会话和作业控制
2011-07-22 19:06
267 查看
1.单元素模式
某些应用程序资源是独占的
,因为有且只有一个此类型的资源。例如,通过数据库句柄到数据库的连接是独占的。您希望在应用程序中共享数据库句柄,因为在保持连接打开或关闭时,它是一种开销,在获取单个页面的过程中更是如此。
单元素模式可以满足此要求。如果应用程序每次包含且仅包含一个对象,那么这个对象就是一个单元素
(Singleton)。
在这个例子中,构造函数和克隆方法都被定义为private,这么做的原因是防止开发者用new或者clone运算符错误的创建第二个类实例;因此getInstance()是唯一可以访问单件类实例的方法。
加深印象的例子:
玩魔兽
双击war3.exe,这时候就开始运行魔兽了,如果不小心双击了两次就开了3个魔兽,那如果再双击几次呢?
所以如果使用单元素模式,那么即使双击多少次也只会开一个魔兽应用程序。
视频过程:
某些应用程序资源是独占的
,因为有且只有一个此类型的资源。例如,通过数据库句柄到数据库的连接是独占的。您希望在应用程序中共享数据库句柄,因为在保持连接打开或关闭时,它是一种开销,在获取单个页面的过程中更是如此。
单元素模式可以满足此要求。如果应用程序每次包含且仅包含一个对象,那么这个对象就是一个单元素
(Singleton)。
<?php /* *设计模式 */ class db{ private function __construct(){ // 构造器私有化 echo 'Create Object'; } private function __clone(){} public static function getInstance(){ // 公共接口 echo 'Call getInstance'."\n"; static $instance=null; if($instance===null){ $instance = new self; } return $instance; } } $db = db::getInstance(); echo "\n"; $db = db::getInstance(); echo "\n"; $db = db::getInstance(); echo "\n"; $db = db::getInstance();
在这个例子中,构造函数和克隆方法都被定义为private,这么做的原因是防止开发者用new或者clone运算符错误的创建第二个类实例;因此getInstance()是唯一可以访问单件类实例的方法。
加深印象的例子:
玩魔兽
双击war3.exe,这时候就开始运行魔兽了,如果不小心双击了两次就开了3个魔兽,那如果再双击几次呢?
所以如果使用单元素模式,那么即使双击多少次也只会开一个魔兽应用程序。
视频过程:
相关文章推荐
- Linux进程组,作业,会话,作业控制详解
- 进程学习:1-进程、进程组、作业、会话、控制终端详解
- Linux进程间关系之进程组,作业,会话与作业控制。
- Linux-进程、进程组、作业、会话、控制终端详解
- 会话,进程组,作业控制
- [置顶] 【Linux】终端,进程组,作业,会话及作业控制
- UNIX进程组,会话期,作业控制
- 终端,进程组,作业,会话及作业控制
- Linux-进程、进程组、作业、会话、控制终端详解
- 进程组、会话、作业和控制终端
- Linux-进程、进程组、作业、会话、控制终端详解
- 终端&作业控制&会话启动过程
- linux 进程 进程组 作业 会话 控制终端
- 进程组、会话、控制终端、作业
- Linux-进程、进程组、作业、会话、控制终端详解
- Linux:进程、进程组、会话、作业、控制终端的概念
- Linux-进程、进程组、作业、会话、控制终端详解
- 《Unix&Linux大学教程》学习笔记七:进程与作业控制
- 机电传动控制第六周作业
- 进程组,作业,会话