Singleton 这可以替代单例模式吗?如果不能,为什么?
注: -Singleton 这可以替代单例模式吗?如果不能,为什么?,singleton,Singleton,注: -HttpHelloWorldService是一个静态类,包含以下两种方法: -公共静态HttpHelloWorldService GetInstance() -public void Execute(HttpRequest请求,HttpResponse响应)您建议的代码没有意义GetInstance()应该返回一个实例,对吗?但您忽略了它的返回值 public partial class HelloWorldService : System.Web.UI.Page {
HttpHelloWorldService
是一个静态类,包含以下两种方法:
-公共静态HttpHelloWorldService GetInstance()
-
public void Execute(HttpRequest请求,HttpResponse响应)
您建议的代码没有意义GetInstance()
应该返回一个实例,对吗?但您忽略了它的返回值
public partial class HelloWorldService : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//HttpHelloWorldService.GetInstance().Execute(Request, Response);
//--can the above code be written in the following 3 lines??.......
HttpHelloWorldService.GetInstance();
HttpHelloWorldService hhtt = new HttpHelloWorldService();
hhtt.Execute(Request,Response);
}
}
在下一行中,您通过构造函数创建这个类的另一个实例
HttpHelloWorldService.GetInstance();
你确定你知道什么是单身吗?因为这看起来一点也不像。简短回答:不。如果这是一个真正的单例实现,您根本无法成功地调用
new
。如果您可以调用它,您可以替换代码,但它肯定不是单例
singleton的基本思想是,您只能创建类的一个单个对象。类似于getInstance()
ist的方法用于返回此对象(如果该对象是在该方法之前创建的),或者使用此方法创建它。您应该不能使用new
自行创建对象。单例类的构造函数应该是私有的。另外,您可以创建多个对象,这将与模式的想法背道而驰。仅使用getInstance()
的返回值访问singleton对象
对单例模式中的最佳实践进行了很好的描述
HttpHelloWorldService hhtt = new HttpHelloWorldService();
hhtt.Execute(Request,Response);