相关疑难解决方法(0)

单身人士有什么不好的?

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

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

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

singleton design-patterns

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

C++单例与全局静态对象

今天我的一个朋友问我为什么他更喜欢在全局静态对象上使用单例?我开始解释的方式是单例可以有状态与静态全局对象不会......但后来我不确定...因为这在C++中...(我来自C#)

一个优于另一个有什么优势?(在C++中)

c++ singleton static global-variables

53
推荐指数
3
解决办法
6万
查看次数

什么时候我们应该让构造函数私有&为什么?PHP

可能重复:
在PHP5类中,何时调用私有构造函数?

我最近一直在阅读有关OOP的内容并遇到了这个私有构造函数的情况.我做了Google搜索,但找不到与PHP相关的任何内容.

在PHP中

  • 我们何时必须定义私有构造函数?
  • 使用私有构造函数的目的是什么?
  • 使用私有构造函数的优点和缺点是什么?

php oop constructor

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

您选择BOOST中的哪个Singleton库?

谷歌的结果表明,在推特中有超过1个单身模板/基类,你建议哪一个?

c++ singleton boost

12
推荐指数
1
解决办法
2万
查看次数

工业强度的n吨基类模板

我正在研究一个n吨基类模板.我还不担心懒惰,所以意图是:

确保一个类只有n个实例,并提供对它们的全局访问点.

到目前为止,这是我的代码:

template<typename Derived, size_t n = 1>
class n_ton_base                 // Singletons are the default
{
    static Derived instances[n + (n == 0)];
                              // Zerotons are supported, too
protected:

    // Prevent n_ton_base to be used outside of inheritance hierarchies
    n_ton_base() {} 

    // Prevent n_ton_base (and Derived classes) from being copied
    n_ton_base(const n_ton_base&) = delete;

public:
                   // Get first element by default, useful for Singletons
    template<size_t i = 0>
    static Derived& get_instance()
    {
        static_assert(i < n, "Time to …
Run Code Online (Sandbox Code Playgroud)

c++ singleton templates design-patterns c++11

7
推荐指数
2
解决办法
504
查看次数

Python中类的单个实例

我正在创建一个Python应用程序,其中包括与服务器的套接字通信。我想要一个可以在我的整个应用程序中使用的模块(其他几个模块)。目前,我的模块如下所示:

class SocketCommunication:

    def __init__(self):
        self.socketIO = SocketIO(settings.ADDRESS, settings.PORT, Namespace)

    def emit(self, message, data):
        json_data = json.dumps(data.__dict__)
        self.socketIO.emit(message, json_data)


class Namespace(BaseNamespace):
    def on_connect(self):
        print '[Connected]'

    def on_disconnect(self):
        print "[Disconnected]"
Run Code Online (Sandbox Code Playgroud)

当我在其他模块中使用它时,请执行以下操作:

import SocketCommunication
self.sc = SocketCommunication()
Run Code Online (Sandbox Code Playgroud)

问题在于,每次执行此操作时,都会创建一个新连接,该连接将在服务器上显示为新客户端,这是不希望的。据我了解,在Python中应该避免使用Singleton,因此我对这种问题的最佳实践感到好奇吗?

python sockets singleton class instance

7
推荐指数
1
解决办法
4067
查看次数

单身设计模式与静态类

当Singleton设计模式优于静态类并且静态类优于Singleton设计模式时,有哪些情况?

c# design-patterns

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

在Singleton类的情况下我应该如何编写复制构造函数?如何重载=运算符?

我应该如何为我的单例类编写一个复制构造函数,以防止创建一个新对象,因为我已经有了一个.什么是overload = operator的最佳实践

 #include <iostream>
 #include <stdio.h>
 #include <conio.h>

 using namespace std;

 class Rect
 { 
  int length;
  int breadth;
  static int count;
  static int maxcount;
  Rect()
  {};
  Rect(const Rect& abc){};
  public :

      ~Rect();
      int area_rect()          
      {return length*breadth;}
      void set_value(int a,int b);

      static Rect* instance()
      {     
            Rect* ptr=NULL;
            if(count < maxcount)
            {
              ptr=new Rect ;
              count++;
            }
             return ptr;
       }
     };
    int Rect::count = 0;
    int Rect::maxcount = 1;
    void Rect::set_value(int a,int b)
   {
    length=a;
    breadth=b;
   }
  Rect::~Rect()
  {
   count --; …
Run Code Online (Sandbox Code Playgroud)

c++ singleton copy-constructor

2
推荐指数
2
解决办法
5038
查看次数

2
推荐指数
1
解决办法
3469
查看次数

这是一个静态参考?

package gui;


public class Solver {


    void solveIt(){
        CubeGui.moveThat();
    }    

}
Run Code Online (Sandbox Code Playgroud)

我试图从这个类访问方法moveThat,但它一直告诉我无法从静态引用访问非静态方法moveThat.我不知道这是一个静态参考?

java static

1
推荐指数
1
解决办法
226
查看次数

单例初始化

我在代码中实现了Singleton设计模式.

假设它是:

class Singleton
{
  Singleton () {}
  static Singleton* s;
public:
  static Singleton* Get () {
    if (!s)
      s = new Singleton ();
    return s;
  }
};
Run Code Online (Sandbox Code Playgroud)

令我困惑的是这种模式的"初始化".在.cpp我把:

SingletonPointer* SingletonClass::s (0);
Run Code Online (Sandbox Code Playgroud)

但我不明白如何才能访问 define s,因为它是如此private.怎么可能?

TIA,吉尔

c++ singleton private-members

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