相关疑难解决方法(0)

单身人士有什么不好的?

单例模式是一个缴足成员四人帮模式书,但最近似乎而是由开发者世界孤立.我仍然使用相当多的单例,特别是对于工厂类,虽然你必须对多线程问题(实际上是任何类)有点小心,但我不明白为什么它们如此可怕.

Stack Overflow特别假设每个人都同意Singletons是邪恶的.为什么?

请用" 事实,参考或特定专业知识 " 支持您的答案

singleton design-patterns

1931
推荐指数
30
解决办法
48万
查看次数

单身人士真的那么糟糕吗?

可能重复:
单身人士有什么不好的?

可以理解的是,许多设计模式在某些情况下可能被滥用,就像妈妈总是说:" 太多好事并不总是好的! "

我注意到这些天,我经常使用Singletons,而且我担心自己可能会滥用设计模式,并且越来越深入地研究一种不良习惯的习惯.

我们正在开发一个Flex应用程序,当用户使用它时,该应用程序在内存中保留了相当大的分层数据结构.用户可以按需加载,保存,更改和刷新数据.

这些数据通过Singleton类集中,该类聚合了几个ArrayCollections,Arrays,value对象以及通过getter和setter公开的一些其他本机成员变量.

要从应用程序的任何位置获取对数据的引用,我们执行整个Model.getInstance()方法类型的事情,我确信每个人都熟悉.这确保了我们始终掌握相同的数据副本,因为在我们设计时,我们说在应用程序生命周期中只允许存在一次实例.

从这个中央数据存储库中,我们可以轻松地调度属性更改事件,并且可以有多个引用中央数据的UI组件,更新其显示以反映已发生的数据更改.

到目前为止,这种方法已经有效并且证明对我们的环境非常实用.

然而,我发现,在创建新课程时,我有点过分了.问题应该是一个类是Singleton,还是应该以其他方式管理,例如可能使用工厂,往往有点变得有点困难,有点不确定.

我在哪里画单线?是否有一个很好的指导方针来决定何时使用单身人士以及何时远离他们.

另外,有人可以推荐一本关于设计模式的好书吗?

singleton design-patterns

51
推荐指数
4
解决办法
3万
查看次数

在PHP5类中,何时调用私有构造函数?

假设我正在编写一个PHP(> = 5.0)类,它应该是一个单例.我读过的所有文档都说使类构造函数变为私有,因此无法直接实例化类.

所以,如果我有这样的事情:

class SillyDB
{
  private function __construct()
  {

  }

  public static function getConnection()
  {

  }
}
Run Code Online (Sandbox Code Playgroud)

是否有任何情况下__construct()被调用,而不是我正在做的事情

new SillyDB() 
Run Code Online (Sandbox Code Playgroud)

在班级内部打电话?

为什么我被允许从内部实例化SillyDB呢?

php oop constructor

38
推荐指数
2
解决办法
3万
查看次数

标签 统计

design-patterns ×2

singleton ×2

constructor ×1

oop ×1

php ×1