【发布时间】:2012-08-24 19:42:46
【问题描述】:
我一直被告知在创建静态类时要非常小心,因为它们容易被不熟练的程序员过度使用。
我目前正在用 PHP 编写一个会话类来跟踪网站上的用户。
一个会话似乎在静态类中是有意义的,因为只有其中一个是正确的?
我曾经在一个 CMS 中工作,它有一个工厂,它创建了一个会话对象,然后存储了该实例,当请求一个新会话时 (MyFactory::getSession()),它会返回之前初始化的一个。这样做有什么好处吗?
谢谢!
【问题讨论】:
-
不,
MyFactory::getSession()没有多大意义,是的,使用静态类就可以了。 -
如果您愿意,我认为您可以同时处理多个会话。
-
为什么需要多个会话?
-
@Undefined ,您可能需要一个不同的会话包装器来实现相同的接口。如果您的代码与类的名称相关联(静态类就是这种情况),那么您无法替换会话实例“on fly”。这就是人们谈论紧密耦合代码时的意思。