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 15:20

Comments on this entry:

Gravatar # re: DALFactory
by Igor Damiani at 22/05/2006 15: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 15: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...
Comments have been closed on this topic.