【问题标题】:static function in class which instantiates object实例化对象的类中的静态函数
【发布时间】:2011-08-19 18:17:21
【问题描述】:

我经常使用一种模式,我在一个类中有一个静态成员函数,它实例化自身的对象,使用它并销毁它。

这是一个好的模式吗?我认同。模式有名称吗?

【问题讨论】:

  • 你这样做的目的是什么?
  • 通常用于创建 gui 窗口,但并非总是如此。

标签: oop design-patterns


【解决方案1】:

我猜这是SingletonFactory method 模式的组合。可能是“单身”?

【讨论】:

  • 不完全是。单例只允许 1 个实例,单例不使用自己。
  • 对不起,我的问题是我的误解。
【解决方案2】:

该模式称为'Factory method'

我经常使用这种模式,如果使用工厂类有点矫枉过正,并且在创建类的实例时有点麻烦(例如必须在其他对象上进行一些初始化),或者,当你希望有一种简单的方法来创建该类的不同类型的实例。

【讨论】:

    【解决方案3】:

    你是说你正在这样做

    class MyClass {
            static void util(){
            obj = new MyClass();
            obj.InstanceMem();
            obj.destroy();
        }
    
        void InstanceMem(){}
    }
    

    我认为这更像是一种实用方法。

    如果你认为它解决了一个常见的重复出现的问题,那么它可以被称为模式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多