2013-10-15 36 views
0
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是一个静态类,2种方法为如下:这可以替代单身模式吗?如果不是原因?

- public static HttpHelloWorldService GetInstance()

- public void Execute(HttpRequest request, HttpResponse response)

+0

是它可能..... –

回答

1

你提出的代码是没有意义的。 GetInstance()应该返回一个实例,对吧?但是你忽略了它的回报价值。

HttpHelloWorldService.GetInstance(); 

然后在下一行通过构造函数创建此类的另一个实例。

HttpHelloWorldService hhtt = new HttpHelloWorldService(); 
hhtt.Execute(Request,Response); 

你确定你知道单身人士是什么吗?因为这看起来不像一个。

0

简答题:不会。如果这是一个真正的单例实现,则根本无法成功调用new。如果你可以调用它,你可以替换代码,但它绝对不是单身人士。

单身人士的基本想法是,你只能创建一个单人该对象的类。像getInstance()这样的方法用于返回此对象,如果它是之前创建的,或者创建该对象,则会洞察此方法。你应该而不是能够通过使用new自己创建一个对象。单例类的构造函数应该是私有的。 Otherwies你可以创建多个对象,什么会违反模式的想法。只使用返回值getInstance()来访问单例对象。

在Singleton模式的最佳实践的一个很好的描述给出here

相关问题