4

嘿,嗨,我想限制对象的创建,这意味着一个类最多可以有 4 个对象,不超过这个怎么实现?

4

6 回答 6

10

一种方法是使用最多创建 4 个实例的对象工厂。这是一个有趣的需求……对象池会满足同样的需求吗?

于 2010-02-24T05:12:07.743 回答
3

尝试修改单例模式。您可以使用计数变量。您需要将构造函数保持为私有才能控制编号。的实例。

于 2010-02-24T05:15:40.830 回答
3

您可以使用静态类属性来计算创建的实例数来存储计数。这可以在类构造函数中完成,也可以使用工厂模式。在不了解目标语言的情况下更准确地回答这个问题有点困难。

于 2010-02-24T05:13:17.663 回答
1

实现的一种方法是单例设计模式,每当我们调用创建实例时,检查已经创建的实例的计数,如果实例计数已经达到 4,则为您的应用程序使用相同的实例。有一个计数,Creat Static Int Counter = 0; 并不断增加它以获得结果。

于 2010-03-11T08:47:56.717 回答
0

这是简短的代码片段,将在 c# 中给出上述结果

sealed class clsInstance
    {
        public static int count = 0;
        private static readonly clsInstance inst = new clsInstance();
        clsInstance()
        {

        }

        public static clsInstance Inst
        {
            get
            {
                if (count < 4)
                {

                    Console.WriteLine("object : " + count);
                    count++;
                    return inst;
                }
                return null;
            }
        }


    }

   class MainClass
   {
       public static void Main(String[] args)
       {
           clsInstance c1 = clsInstance.Inst;
           clsInstance c2 = clsInstance.Inst;
           clsInstance c3 = clsInstance.Inst;
           clsInstance c4 = clsInstance.Inst;
           Console.ReadLine();
           clsInstance c5 = clsInstance.Inst;
           Console.ReadLine();
       }
   }
于 2010-04-19T11:09:13.077 回答
0

最简单的方法是拥有一个名为“count”的类级别属性,并在您的构造函数中,确保“count”不高于某个数字。

//pseudocode
class foo
  static count = 0

  def constructor()
    if count < 4
      //create object
    else
      //there are too many!
于 2010-02-24T05:15:47.147 回答