Nell'articolo "
The Factory Design Pattern", 
Amit Goel individua all'interno del Framework .NET delle classi che implementano il pattern Factory Method (
GoF, pp. 107-116). Uno dei suoi esempi riguarda le classi del namespace 
System.Security.Cryptography. Se si analizza con attenzione, per esempio il "ramo" 
SymmetricAlgorithm-
DES-
DESCryptoServiceProvider, si trova il pattern in una variante non molto ortodossa. 
L'abbiamo chiamata 
Factory EndoMethod per il fatto che il 
FactoryMethod della classe 
Creator restituisce sempre 
Creator e non 
Product come nella variante originale del pattern e il 
FactoryMethod della classe 
ConcreteCreator restituisce a sua volta 
ConcreteCreator e non 
Product (mi sono ispirato al termine 
endomorfismo che i matematici :-) incontrano nelle primissime ore di corso di 
Teoria delle categorie - un altro amore mio).
Vediamo adesso l'esempio in causa (SymmetricAlgorithm-DES-DESCryptoServiceProvider):
- la classe astratta 
System.Security.Cryptography.SymmetricAlgorithm fa da 
Creator;
- il 
FactoryMethod sarebbe il metodo 
Create che però invece di restituire 
Product restituisce se stessa (è quindi un 
FactoryEndoMethod);
- la classe 
System.Security.Cryptography.DES fa da 
ConcreteCreator, anche se in questa variante non è così concreta bensì astratta come la 
Creator da cui deriva, e il suo 
FactoryMethod è di nuovo un 
FactoryEndoMethod perché restituisce se stessa (
DES);
- il fatto del 
FactoryEndoMethod obbliga la classe 
Product ad essere identica con la classe 
ConcreteCreator;
- la classe 
System.Security.Cryptography.DESCryptoServiceProvider fa in questo esempio da 
ConcreteProduct.
Se troverò un po' di tempo (boh...) varrebbe la pena di fare in un articolo un po' di teoria in modo più serio su questa variante del pattern Factory Method. 
Cosa ne dite?