嘿,嗨,我想限制对象的创建,这意味着一个类最多可以有 4 个对象,不超过这个怎么实现?
问问题
3928 次
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 回答