2013-10-15 3 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. Если вы можете назвать это, вы можете заменить код, но тогда это определенно не singleton.

Основная идея singleton заключается в том, что вы можете создать только один объект объекта данного класса. Такой метод, как getInstance(), используется для возврата этого объекта, если он был создан ранее, или создать его для понимания этого метода. Вы должны не иметь возможность создать объект самостоятельно, используя new. Конструктор одноэлементного класса должен быть закрытым. В других случаях вы могли бы создать несколько объектов, что было бы против идеи шаблона. Используйте только возвращаемое значение getInstance() для доступа к объекту singleton.

Хорошее описание лучшей практики в одноплодной шаблон дается here

Смежные вопросы