OOPS(设计模式)

时间:2010-02-24 05:08:29

标签: design-patterns oop architectural-patterns

嘿,嗨,我想要限制对象创建意味着一个类最多可以假设4个对象不超过如何实现这个目标?

6 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:3)

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

答案 2 :(得分:3)

尝试修改 Singleton 模式。您可以使用计数变量。您需要将Constructor保持为私有才能控制no。实例。

答案 3 :(得分:1)

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

答案 4 :(得分:0)

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

//pseudocode
class foo
  static count = 0

  def constructor()
    if count < 4
      //create object
    else
      //there are too many!

答案 5 :(得分: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();
       }
   }