我从joomla使用。
我在joomla有一个自定义库。
我们为了避免过多的内存,使用静态类,如:
class foo
{
publc static function hello()
{
return "HI";
}
}
并将其命名为:
foo::hello()
这是最好的方式吗?
我们想要在没有任何实例的情况下使用类中的函数。技术原因是什么?
如何单身?
答案 0 :(得分:0)
实例本身不使用内存。使用内存的是文件和实例信息。 如果使用静态类,则将使用相同数量的内存。 这是优化代码的一种极端方式。不太好,但我会给你点尝试。
答案 1 :(得分:0)
根本不要把功能放在一个类中。这不是Java。
function hello() {
return "HI";
}
答案 2 :(得分:0)
这是一种有益于学习,具有良好意图但具有固有弱点的设计模式之一,这使得有经验的程序员在提到时会引发呕吐反射。简而言之,随着项目的发展,过度使用单例模式将抑制代码的增长和重用性。单例模式的基本意图是防止同一对象的多个实例化,因为Web框架的各个部分在单个页面呈现中访问您的单例。
如果您想要使用模式来简化代码,这是一件好事;但一定要将正确的模式应用于正确的问题。例如注册表,工厂,抽象工厂和依赖注入是我在开始时要探索的一些例子。
最后,这是一个用于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;
}
}