CV

Lundi 27 février 2006 1 27 /02 /Fév /2006 14:33

Les genrics dans .NET 2.0 permettent de factoriser le code; parfois de façon spectaculaire.

Par exemple, un DAO expose les méthodes CRUD pour accéder aux classes métier. En général,

il faut écrire une classe DAO par entité métier.

Avec les générics, c'est fini :

 

///*********************************************************************************************************

///Classe DAOGeneric

///*********************************************************************************************************

///Classe utilisant Hibernate, Castle(Active Record) pour la persistance

using System;

using System.Collections.Generic;

using System.Text;

using Appliref.domain;

using Castle.ActiveRecord;

using Castle.ActiveRecord.Queries;

using NHibernate;

namespace Appliref.Dao

{

public class daoGenerics<T,U,V>

{

 

public daoGenerics()

{

}

///

///Recherche un objet par clé

 

 

 

public T getObject(U ID)

{

return ((T)(ActiveRecordMediator.FindByPrimaryKey(typeof(T), ID)));

}

///

///Récupère la collection d'un type donné

public T[] getObjects()

{

return ((T[])(ActiveRecordMediator.FindAll(typeof(T))));

}

///

///Supprime un objet

///

public bool deleteObject(T objet)

{

 

try

 

 

 

 

 

{

ActiveRecordMediator.Delete(objet);

return true;

}

catch (Exception e)

{

return false;

}

}

///

///Vide une table

///

public bool deleteAllObjects()

{

try

 

 

 

 

 

{

ActiveRecordMediator.DeleteAll(typeof(T));

return true;

}

catch (Exception e)

{

return false;

}

}

 ///

///Mise à jour d'un objet

///

public T updateObject(T objet)

{

try

 

 

 

 

 

{

ActiveRecordMediator.Save(objet);

return objet;

}

catch(Exception e)

{

return default(T);

}

 

}

///

///Création d'un nouvel objet

///

public T newObject(T objet)

{

try

 

 

 

 

 

{

ActiveRecordMediator.Create(objet);

return objet;

}

catch (Exception e)

{

return default(T);

}

}

///

///Exécute une requête de sélection (HQL)

public V[] executeQuery(SimpleQuery q)

{

return (V[])ActiveRecordMediator.ExecuteQuery(q);

}

}

}

 

 

 

 

 

 

Par Hugues MEUNIER - Publié dans : .NET
Ecrire un commentaire - Voir les 0 commentaires
Retour à l'accueil

Présentation

Syndication

  • Flux RSS des articles

Créer un Blog

Recommander

Recherche

Calendrier

Février 2012
L M M J V S D
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29        
<< < > >>
 
Créer un blog gratuit sur over-blog.com - Contact - C.G.U. - Signaler un abus - Articles les plus commentés