1月 24
本来向把这些文章翻译过来的,一直太忙,时间顾不上。简单的总结和说明一下,就像是做点笔记和说明。

The Singleton and Factory Patterns in PHP: Building object-oriented forms (建立面向对象的表单)
The Singleton and Factory Patterns in PHP: designing an object factory (实现工厂)
The Singleton and Factory Patterns in PHP: a rendering-capable factory class (认识工厂模式)
The Singleton and Factory Patterns in PHP: Working With Singletons (使用单例模式)
The Singleton and Factory Patterns in PHP: Building a Form Generator Class (建立表单生成类)

rollenc笔记:
1。单例:在系统中只需要一个实例是可以使用单例模式。你一天可能需要吃多个苹果,而你只需要一把水果刀。而且,没有水果刀就去拿一把,已经有的话就直接用,不需要忽略以前的再拿新的。那么水果刀就可以作为一个单例。
在建立数据库连接是常常需要使用单例模式。在MVC系统中,也常常使用单例来调用module。在简单的代码如下:

class Db
{
    /**
     * @access private
     */

    function Db()
    {
            $this->conn = mysql_connect(DB_HOST, DB_USER, DB_PWD);
            if(!$this->conn)
            {
                die("Connect DB error!");
            }
            mysql_select_db(DB_NAME);
    }
    /**
     * 使用 $db = & Db::getInstance() 来构建一个DB连接,而不是使用$db = new Db();
     * 如果使用php5,可以把Db的构造函数__construct声明为private,这样在程序级强行在程序只能使用getInstance来构建,
     * 但考虑兼容的代码,在php4中就只能简单的靠程序员自己来自觉遵守了。
     */

    function & getInstance()
    {
            if (!DB :: $instance)
            {
                    DB :: $instance = new Db();
            }
            return DB :: $instance;
    }
    /**
     *其他的函数等等
     */

    function query($query)
    {
       //Your code here
    }
}
?>
 


2。简单工厂:文中提到的工厂属于简单工厂模式的范畴。有几个类继承于同一个类或者实现了相同的接口(文中并没有接口和继承,但是可以知道几个)。而在运行前,你并不知道你需要那一个类,那么,。你可能需要一个工厂。比如:

<?php
    $fruitName = $_GET['name'];
    $fruit = FruitFactory::getFruit($fruitName);
    $fruit->output();
?>
 

在运行前,我们并不知道,我们需要建立一个什么样的Fruit对象,那么我们就把参数$_GET['name']给FruitFactory,让他来生产一个相应的Fruit对象出来。然后,我们再继续进行下面操作。我提到上面的接口的概念,也是因为后面的调用是相同的,只有具备了这些接口的对象(类)才能继续正确的运行。
Defined tags for this entry:

作者 rollenc

| 主要出源 (0)
请对 365 天内更新的文章进行打分
当前分数: 2.89 of 5 。 9 次打分。 359 次点击
Bookmark php设计模式外文文献之一:单例和工厂  at del.icio.us Digg php设计模式外文文献之一:单例和工厂 Mixx php设计模式外文文献之一:单例和工厂 Bloglines php设计模式外文文献之一:单例和工厂 Technorati php设计模式外文文献之一:单例和工厂 Fark this: php设计模式外文文献之一:单例和工厂 Bookmark php设计模式外文文献之一:单例和工厂  at YahooMyWeb Bookmark php设计模式外文文献之一:单例和工厂  at Furl.net Bookmark php设计模式外文文献之一:单例和工厂  at reddit.com Bookmark php设计模式外文文献之一:单例和工厂  at blinklist.com Bookmark php设计模式外文文献之一:单例和工厂  at Spurl.net Bookmark php设计模式外文文献之一:单例和工厂  at NewsVine Bookmark php设计模式外文文献之一:单例和工厂  at Simpy.com Bookmark php设计模式外文文献之一:单例和工厂  at blogmarks Bookmark php设计模式外文文献之一:单例和工厂  with wists Bookmark php设计模式外文文献之一:单例和工厂  at Ma.gnolia.com wong it! Bookmark using any bookmark manager! Stumble It!

0 引用

  1. 没有引用

0 回复

回复显示方式(直线程 | 分线程)
  1. 没有回复

新增回复


You can use [geshi lang=lang_name [,ln={y|n}]][/lang] tags to embed source code snippets
电子邮件地址将不会被显示,而仅将被用于发送电子邮件通知

为了阻止机器人提交垃圾回复,请在相应的文本框中输入你在下面的图片中所看到的字符串。只有在你输入的字符串和图片中的字符串吻合的情况下,你的回复才能被成功提交。请确认你的浏览器支持、并且已经开启了cookies功能,否则的话,你的回复无法被正确地验证。
CAPTCHA