Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:单例设计模式或静态类_Php_Joomla_Singleton - Fatal编程技术网

PHP:单例设计模式或静态类

PHP:单例设计模式或静态类,php,joomla,singleton,Php,Joomla,Singleton,我使用joomla的产品。 我在joomla有一个定制图书馆。 为了避免内存过多,我们使用静态类,如: class foo { publc static function hello() { return "HI"; } } 并称之为: foo::hello() 这是最好的办法吗? 我们希望在没有任何实例的情况下使用类中的函数。有什么技术原因吗? 单身汉怎么样 实例本身不使用内存。使用内存的是文件和实例信息。 如果使用静态类,将使用相同的内存量。 这是

我使用joomla的产品。
我在joomla有一个定制图书馆。
为了避免内存过多,我们使用静态类,如:

class foo
{
    publc static function hello()
    {
        return "HI";
    }
}
并称之为:

foo::hello()
这是最好的办法吗?

我们希望在没有任何实例的情况下使用类中的函数。有什么技术原因吗?

单身汉怎么样

实例本身不使用内存。使用内存的是文件和实例信息。 如果使用静态类,将使用相同的内存量。
这是优化代码的一种极端方式。不太好,但我会给你分数,让你试试。

实例本身不使用内存。使用内存的是文件和实例信息。 如果使用静态类,将使用相同的内存量。
这是优化代码的一种极端方式。不太好,但我会给你分数,让你试试。

实例本身不使用内存。使用内存的是文件和实例信息。 如果使用静态类,将使用相同的内存量。
这是优化代码的一种极端方式。不太好,但我会给你分数,让你试试。

实例本身不使用内存。使用内存的是文件和实例信息。 如果使用静态类,将使用相同的内存量。
这是优化代码的一种极端方式。不是很好,但是我会给你分数,让你尝试一下。

只是不要把函数放在一个类中。这不是Java

function hello() {
    return "HI";
}

只是根本不要把函数放在一个类中。这不是Java

function hello() {
    return "HI";
}

只是根本不要把函数放在一个类中。这不是Java

function hello() {
    return "HI";
}

只是根本不要把函数放在一个类中。这不是Java

function hello() {
    return "HI";
}

这是一种很好学习的设计模式,有良好的意图,但有固有的弱点,这使得有经验的程序员在提到它时会发起噱头反应。简言之,随着项目的发展,过度使用单例模式将抑制代码的增长和可重用性。singleton模式的基本意图是防止同一对象的多个实例化,因为web框架的各个部分在单个页面呈现过程中访问singleton

如果您想要使用模式简化代码,这是一件好事;但一定要对正确的问题应用正确的模式。例如注册表、工厂、抽象工厂和依赖项注入,这些都是我在开始时会探讨的几个例子

最后,这里是一个用于PDO连接的单例类的示例,它来自我的许多php书籍之一《php Master:编写尖端代码》

class Database extends PDO
{
    private static $_instance = null;

    private function __construct() {
        parent::__construct(APP_DB_DSN, APP_DB_USER, APP_DB_PASSWORD);
    }

    public static function getInstance() {
        if(!(self::$_instance instanceof Database)) {
            self::$_instance = new Database();
        }

        return self::$_instance;
    }
}

这是一种很好学习的设计模式,有良好的意图,但有固有的弱点,这使得有经验的程序员在提到它时会发起噱头反应。简言之,随着项目的发展,过度使用单例模式将抑制代码的增长和可重用性。singleton模式的基本意图是防止同一对象的多个实例化,因为web框架的各个部分在单个页面呈现过程中访问singleton

如果您想要使用模式简化代码,这是一件好事;但一定要对正确的问题应用正确的模式。例如注册表、工厂、抽象工厂和依赖项注入,这些都是我在开始时会探讨的几个例子

最后,这里是一个用于PDO连接的单例类的示例,它来自我的许多php书籍之一《php Master:编写尖端代码》

class Database extends PDO
{
    private static $_instance = null;

    private function __construct() {
        parent::__construct(APP_DB_DSN, APP_DB_USER, APP_DB_PASSWORD);
    }

    public static function getInstance() {
        if(!(self::$_instance instanceof Database)) {
            self::$_instance = new Database();
        }

        return self::$_instance;
    }
}

这是一种很好学习的设计模式,有良好的意图,但有固有的弱点,这使得有经验的程序员在提到它时会发起噱头反应。简言之,随着项目的发展,过度使用单例模式将抑制代码的增长和可重用性。singleton模式的基本意图是防止同一对象的多个实例化,因为web框架的各个部分在单个页面呈现过程中访问singleton

如果您想要使用模式简化代码,这是一件好事;但一定要对正确的问题应用正确的模式。例如注册表、工厂、抽象工厂和依赖项注入,这些都是我在开始时会探讨的几个例子

最后,这里是一个用于PDO连接的单例类的示例,它来自我的许多php书籍之一《php Master:编写尖端代码》

class Database extends PDO
{
    private static $_instance = null;

    private function __construct() {
        parent::__construct(APP_DB_DSN, APP_DB_USER, APP_DB_PASSWORD);
    }

    public static function getInstance() {
        if(!(self::$_instance instanceof Database)) {
            self::$_instance = new Database();
        }

        return self::$_instance;
    }
}

这是一种很好学习的设计模式,有良好的意图,但有固有的弱点,这使得有经验的程序员在提到它时会发起噱头反应。简言之,随着项目的发展,过度使用单例模式将抑制代码的增长和可重用性。singleton模式的基本意图是防止同一对象的多个实例化,因为web框架的各个部分在单个页面呈现过程中访问singleton

如果您想要使用模式简化代码,这是一件好事;但一定要对正确的问题应用正确的模式。例如注册表、工厂、抽象工厂和依赖项注入,这些都是我在开始时会探讨的几个例子

最后,这里是一个用于PDO连接的单例类的示例,它来自我的许多php书籍之一《php Master:编写尖端代码》

class Database extends PDO
{
    private static $_instance = null;

    private function __construct() {
        parent::__construct(APP_DB_DSN, APP_DB_USER, APP_DB_PASSWORD);
    }

    public static function getInstance() {
        if(!(self::$_instance instanceof Database)) {
            self::$_instance = new Database();
        }

        return self::$_instance;
    }
}

“我们希望在没有任何实例的情况下使用类中的函数”-有什么技术原因吗?不是最好的方法。你有很多东西要学。不要仅仅因为认为静态类占用更少的内存就使用它。这可能看起来有些过分,但请仔细阅读依赖项injuction容器。或者阅读PHP编程概述@N.B.在使用静态函数之前还应该考虑什么?“我们希望在类中使用没有任何实例的函数”-任何技术原因