`
davinci_2012
  • 浏览: 13626 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

php 常用的两个设计模式

阅读更多
  1. 工厂模式

  工厂模式提供了一个在实时状态下实例化对象的机制。
<?php
class creditCardProcessor
{
    public static function factory($provider)
    {
        switch ($provider)
        {
            case 'Verisign':
                //include "Verisign.php";
			    echo 'Verisign.php';
                break;
            case 'PayPal':
                //include "Paypal.php";
			    echo 'Paypal.php';
                break;
            default:
                exit("Invalid CC Provider");
      }
      return new $provider;
    }
}
$cc = creditCardProcessor::factory('PayPal');
?>


  运行结果如下图所示:


  2. 单例模式

  单例模式在确保只有一个实例运行时使用,也可以用来防止类通过clone来复制。

class dbMysgl
{
    private static $conn;
    private function __construct()
    {
        $this->conn = mysql_connect(host, login, pass);
    }
    public static function singleton()
    {
        if(!self::$conn)
        {
            $c = __CLASS__;
            self::$conn = new $c;
        }
        return self::$conn;
    }
    public function __clone()
    {
        trigger_error("Only one connection may exist");
    }
}
$db = new dbMysgl();        // 失败
$db = dbMysgl::singleton(); // 使用的正确方法
$db2 = clone($db);          // 失败



转载地址:http://www.xuekaifa.com/article/20100626/000067.html


分享到:
评论
4 楼 tonyseek 2011-05-04  
何必 switch 呢,PHP 和 Python 一样可以动态实例化的。
关于常用设计模式,官网手册也有说明。
我只是觉得,由于 PHP 只有 Request 的生命期,所以所谓的单例模式并不是真正的单例。
而我们也不必把 Java 中的设计模式实现习惯照搬 PHP 中,如果要“单例”,写一个只有静态方法和静态属性的类就是单例了。这个在 Java 或者 Python 的 Web 应用都做不到的,因为只有 PHP 会以 Request 为最大请求周期。
3 楼 Speak-shuai 2011-05-03  
我也不是很明白
2 楼 llkk0914 2011-03-08  
mysql 集群是什么意思呢?
谁能给详细的介绍一下呢?
1 楼 hxangel 2011-03-01  
不是很明白

相关推荐

    用PHP语言实现16个设计模式.zip

    本资源“用PHP语言实现16个设计模式.zip”提供了关于如何在PHP环境中应用这些模式的详细指导。以下是这16个设计模式的概述,以及它们在实际开发中的应用和重要性。 1. 单例模式:确保一个类只有一个实例,并提供...

    php设计模式介绍,php设计模式介绍

    适配器模式使两个不兼容的接口能够协同工作。在PHP中,它常用于整合不同API或库,使得它们可以无缝对接。 9. **代理模式(Proxy)** 代理模式为其他对象提供一种代理以控制对这个对象的访问。在PHP中,它可以用于...

    Learning PHP设计模式

    6. **适配器模式(Adapter)**:使两个不兼容的接口能够协同工作。在PHP中,适配器模式可以用来集成第三方库或API,使其符合项目的需求和标准。 7. **代理模式(Proxy)**:为其他对象提供一种代理以控制对这个对象...

    php设计模式代码

    9. **适配器模式**:适配器模式可以使两个不兼容的接口协同工作。在PHP中,这可以用来兼容第三方库或服务的接口。 10. **桥接模式**:桥接模式将抽象部分与实现部分分离,使得它们可以独立变化。在PHP中,当需要...

    PHP设计模式.rar

    9. 适配器模式:适配器模式使两个不兼容的接口能够协同工作。在PHP中,它可以用于整合第三方库与项目现有的接口,实现系统的无缝对接。 10. 桥接模式:桥接模式将抽象部分与实现部分分离,使它们可以独立变化。在...

    PHP设计模式--文字版.pdf

    每个设计模式通常由三个核心部分构成:标识(一个名字)、问题陈述(问题的描述)和解决方案(问题的处理方法)。设计模式的标识便于其他开发者快速理解代码的目的,问题陈述明确了模式适用的上下文,而解决方案则...

    PHP设计模式 ((美)Aaron Saray) 中文pdf扫描版

    适配器模式则解决接口不兼容的问题,它使两个不兼容的接口能够协同工作。在PHP中,可能需要将第三方库的接口转换为符合项目规范的接口,适配器模式就能派上用场。 观察者模式是一种行为模式,当一个对象的状态改变...

    php设计模式大全php设计模式大全

    - 适配器模式:使两个不兼容的接口能够协同工作。 - 装饰模式:动态地给一个对象添加一些额外的职责。 - 享元模式:使用共享技术有效地支持大量细粒度的对象。 3. 行为型模式: - 责任链模式:避免将请求的发送...

    深入分析PHP设计模式

    适配器模式是一种结构型设计模式,它允许两个不兼容的接口协同工作。在PHP中,这通常意味着将旧的或第三方库的接口转换为符合项目需求的接口。示例中,`Adapters`类作为适配器,将`Man`和`Woman`类的`oldMethod1`和`...

    PHP5设计模式电子教程PDF全书

    最后,适配器模式是将两个不兼容的接口进行桥接,使得原本无法一起工作的类能够协同工作。在PHP中,我们可以通过继承或组合来实现适配器,使得旧代码可以与新系统集成。 总的来说,《PHP5设计模式电子教程PDF全书》...

    PHP面向对象高级编程和设计—面向对象高级编程和设计模式

    5. **适配器模式**:允许两个不兼容的接口之间进行通信。通过创建一个适配器类,可以使旧的接口与新的接口相适应,保持系统的兼容性。 这些设计模式的运用提升了PHP代码的灵活性、可复用性和可维护性,是编写高质量...

    php设计模式-designpatterns-php.zip

    5. 适配器模式:使两个不兼容的接口能够协同工作。在PHP中,适配器模式常用于集成第三方库或服务,使得它们能够与项目中的其他组件兼容。 6. 建造者模式:将复杂对象的构建与其表示分离,使得同样的构建过程可以...

    《PHP设计模式介绍》

    当两个接口不兼容时,适配器模式允许它们协同工作。在PHP中,可以用于整合不同API或库,使得代码能适应多种环境。 6. **装饰器模式** 装饰器模式动态地给对象添加新的功能,而无需修改原有代码。它在PHP中常用于...

    PHP设计模式指南~

    7. **适配器模式**:适配器模式让两个不兼容的接口协同工作,它在PHP中常用于库或API的兼容性处理。 8. **观察者模式**:观察者模式定义了对象间的一种一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的...

    PHP设计模式指南中文版

    适配器模式使两个不兼容的接口能够协同工作,它将一个类的接口转换成客户希望的另一个接口。在PHP中,适配器模式常用于整合第三方库或API,使其符合项目需求。 十、桥接模式(Bridge) 桥接模式将抽象部分与实现...

    《 php设计模式》

    适配器模式使得两个不兼容的接口能够协同工作。在PHP中,它可以用来集成第三方库或服务,使它们能够与现有代码无缝对接。 七、代理模式 代理模式为其他对象提供一种代理以控制对这个对象的访问。在PHP中,代理模式...

    (PHP设计模式手册)php|architect's Guide to PHP Design Patterns

    《PHP设计模式手册》是PHP开发者的一本重要参考资料,它由php|architect出版,旨在帮助程序员深入理解并熟练运用设计模式。设计模式是软件工程中的最佳实践,它为解决常见问题提供了可重用的解决方案。这本书对于PHP...

    PHP实现工厂模式设计日志记录器

    在软件设计模式中,工厂模式是一种常用的创建型模式,它提供了一种创建对象的最佳方式。在PHP中,工厂模式能够帮助我们解耦代码,使得代码更具有灵活性和可扩展性。在这个例子中,我们将深入探讨如何使用工厂模式来...

    php设计模式

    适配器模式允许两个不兼容的接口协同工作。在PHP中,它可以用于将第三方库或者旧代码接口转换为符合项目需求的接口。 6. 观察者模式(Observer) 观察者模式定义了对象之间的一对多依赖关系,当一个对象的状态发生...

Global site tag (gtag.js) - Google Analytics