Continuo la serie con il Factory Method (pp. 107-116 in GoF)
Douglas Purdy (program manager per XML Web Services e responsabile per la serializzazione e il remoting in .NET) dice:
"The Factory pattern has a long history at Microsoft [...] the benefits of this pattern were not lost on the designers of the .NET Framework. As with many other design patterns, examples of the Factory pattern can be found throughout the Framework"
Vediamo un esempio:
7. System.Web.IHttpHandlerFactory, System.Web.UI.PageHandlerFactory, System.Web.IHttpHandler e la System.Web.UI.Page fanno il Factory Method
dove:
- l'interfaccia System.Web.IHttpHandlerFactory fa la Creator;
- la classe interna System.Web.UI.PageHandlerFactory fa la ConcreteCreator;
- l'interfaccia System.Web.IHttpHandler fa la Product;
- la classe System.Web.UI.Page (e non solo, vedi anche la classe interna System.Web.UI.TrivialPage) fanno le ConcreteProduct e
- il metodo System.Web.IHttpHandlerFactory.GetHandler fa il FactoryMethod.
E' interessante anche il posizionamento delle quattro classi coinvolte nel pattern al interno della gerarchia dei namespace: le interfacce nel System.Web mentre le classi Concrete nel System.Web.UI.
Sto pensando di scrivere un articolo più ampio su questo tema dei design patterns al interno del Framework dove sviluppare e articolare gli spunti solo elencati qua. Lo inizierei questo weekend ma mi piacerebbe avere da parte vostra qualche feedback prima! :-)