没有单例模式的单实例
本文关键字:实例 单实例 单例模式 | 更新日期: 2023-09-27 18:05:06
请告诉我适合以下需要的最佳样式。
Class Base
{
List<string> a;
List<string> b;
public Base()
{
//"Calling Base"
}
}
Class Der : Base
{
GetListA()
{
return a;
}
GetListB()
{
return b;
}
}
Class Der1 : Base
{
GetListA()
{
return a;
}
GetListB()
{
return b;
}
}
Main()
{
Der1 obj1 = new Der1();
Der obj= new Der();
obj.GetListA();
obj.GetListB();
obj1.GetListA();
obj1.GetListB();
}
当我使用obj1
或obj2
时,当前每次创建新对象时都会调用基类构造函数。
Base
类正在生成10k条记录。我希望它只生成一次,并保留它以供其他人重用。
这是一个纯web服务器应用程序,我的应用程序不接受任何静态变量/对象或单例类。如果没有,我需要执行这个任务。
有办法做到这一点吗??
Class Base
{
static List<string> a;
static List<string> b;
public Base()
{
if(this.a == null)
{
a = database.GetListitemsForA();
}
if(this.b == null)
{
b = database.GetListitemsForB();
}
}
}
与使用静态变量类似的是使用Application属性
您可以使用这样的属性来取消创建您的类的多个实例
public SomeClass Instance
{
get
{
if (Application["SomeClassInstance"] == null)
{
Application["SomeClassInstance"] = new SomeClass();
}
return (SomeClass)Application["SomeClassInstance"];
}
}