设计模式


设计模式

使用设计模式是促进最佳实践和良好设计的好办法。设计模式可以提供针对常见的编程问题的灵活的解决方案。

工厂模式

工厂模式(Factory)允许你在代码执行时实例化对象。它之所以被称为工厂模式是因为它负责“生产”对象。工厂方法的参数是 你要生成的对象对应的类名称。

Example #1 调用工厂方法(带参数)

<?php
class Example
{
    
// The parameterized factory method
    
public static function factory($type)
    {
        if (include_once 
'Drivers/' $type '.php') {
            
$classname 'Driver_' $type;
            return new 
$classname;
        } else {
            throw new 
Exception ('Driver not found');
        }
    }
}
?>

按上面的方式可以动态加载drivers。如果Example类是一个数据库抽象类,那么 可以这样来生成MySQLSQLite驱动对象:

<?php
// Load a MySQL Driver
$mysql Example::factory('MySQL');

// Load a SQLite Driver
$sqlite Example::factory('SQLite');
?>

单例

单例模式(Singleton)用于为一个类生成一个唯一的对象。最常用的地方是数据库连接。 使用单例模式生成一个对象后,该对象可以被其它众多对象所使用。

Example #2 单例模式

<?php
class Example
{
    
// 保存类实例在此属性中
    
private static $instance;
    
       
// 构造方法声明为private,防止直接创建对象
    
private function __construct() 
    {
        echo 
'I am constructed';
    }

    
// singleton 方法
    
public static function singleton() 
    {
        if (!isset(
self::$instance)) {
            
$c __CLASS__;
            
self::$instance = new $c;
        }

        return 
self::$instance;
    }
    
    
// Example类中的普通方法
    
public function bark()
    {
        echo 
'Woof!';
    }

    
// 阻止用户复制对象实例
    
public function __clone()
    {
        
trigger_error('Clone is not allowed.'E_USER_ERROR);
    }

}

?>

这样我们可以得到一个独一无二的Example类的对象。

<?php

// 这个写法会出错,因为构造方法被声明为private
$test = new Example;

// 下面将得到Example类的单例对象
$test Example::singleton();
$test->bark();

// 复制对象将导致一个E_USER_ERROR.
$test_clone = clone $test;

?>

«  对象迭代
» 魔术方法
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 虞美人(东山海棠) 我要的幸福、仅此而已 2016年争当四好少年演讲稿 关于政治文明建设中加强地方人大工作几个问题的思考 观《开心超人》有感作文150字 大伦哥,我累了 六年级假文盲作文400字 小学生周记:考试 时间的风再怎么吹也吹不到那年夏天ゝ 关于万圣节的作文:今天是万圣节 \"谎言\"作文1100字 智慧珠游戏拼盘250字 痛过之后,继续探视生活的美丽(冷顺) 财政局关于召开领导班子专题民主生活会情况报告 国庆将至 百变一条绳 初中初二作文800字:小老鼠杰克历险记(3) 我最崇拜的明星 小学二年级作文350字:假如我是黄鹂 十年回首,物是人非 九日吴山宴集值雨次韵 摄魂 魔法世界历险记 感恩节父母寄语 高校辅导员上岗培训心得体会 雪后烟雨 安全生产监督管理先进个人事迹材料 小学五年级国庆节作文 自创长篇小说——魔界历险记2 阮经天的名言 伤感日志:行尸走肉 我的妈妈生病了 数统女的文学梦 有你相伴的今生,我很满足 小鱼儿——空间有情、人间有爱 西部情歌 芦笛岩作文700字 语文作文好句子 世上只有不一定是一定的 爱的路上,你我同行 思路决定出路演讲稿 最美孝心少年的作文 雪,第一场雪作文1000字 路上,梦浸了作文700字 2015年商场春节促销活动方案 励志文章:人生必经多次的重新开始 江水煮鱼,春映桃花 《学习雷锋好榜样》报告会听后感作文600字 换位记 《月光之歌》 安全生产自查自纠报告

Copyright © 2016 phpStudy |