DALFactory

Mi sembra molto carina la possibilità di utilizzare i Generics con la factory dei DAL.

Invece di avere GetCustomerDAL(), GetOrderDAL() ecc.. si può utilizzare (e soprattutto scrivere) una sola funzione più o meno come la seguente:

public static T GetDAL<T>(string entityName)
{
      string dalProviderName = "NH"; //Get from config...
      System.Reflection.Assembly dalAssembly = System.Reflection.Assembly.GetExecutingAssembly(); //The assembly that contains specific DAL implementations
      return (T)dalAssembly.CreateInstance(string.Format("MyFullNamespace.DAL.{0}.{1}DAL", dalProviderName, entityName));
}

da utilizzare più o meno così:

      DAL.ICustomerDAL dal = DAL.DALFactory.GetDAL<DAL.ICustomerDAL>("Customer");

E' sicuramente da mettere un po' a posto ma il punto di partenza mi sembra carino...

Print | posted @ lunedì 22 maggio 2006 12.20

Comments on this entry:

Gravatar # re: DALFactory
by Igor Damiani at 22/05/2006 12.23

sì, è vero. Ho fatto così nel DAL del mio sw di fatturazione, scritto completamente a mano. Anche il mio codice può essere sicuramente migliorato, però uso proprio i generics per evitare ridonanze di codice in primis, poi tutti i benefici del caso (minor codice, minori bug, etc. etc.)
Gravatar # re: DALFactory
by Corrado Cavalli at 22/05/2006 12.47

Mario,
Non e' che va scritta:

public static T GetDAL<T>(string entityName)
{
...
}

e usata con:

DAL.ICustomerDAL dal = DAL.DALFactory.GetDAL<DAL.ICustomerDAL>("Customer");

Non credo che il type inference sia applicabile in questo caso...
Gravatar # re: DALFactory
by Mario Duzioni at 22/05/2006 12.55

Ma vapparapittinusapera!

Mi chiedevo: sogno o son scemo??? Che fine han fatto quei pezzi????

Poi la luce: giustamente l'editor del blog li ha presi come... TAG! :-D

Grazie papi
Comments have been closed on this topic.