0% ont trouvé ce document utile (0 vote)
6 vues2 pages

Exercice SRP

Le document présente un exemple de système de vente en ligne utilisant deux classes principales : Product et Database. La classe Product gère les informations des produits, tandis que la classe Database s'occupe de la connexion et du chargement des données. Un programme console est également fourni pour démontrer l'utilisation de ces classes en affichant les produits avec ou sans TVA.

Transféré par

Hassan Zorkot
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
6 vues2 pages

Exercice SRP

Le document présente un exemple de système de vente en ligne utilisant deux classes principales : Product et Database. La classe Product gère les informations des produits, tandis que la classe Database s'occupe de la connexion et du chargement des données. Un programme console est également fourni pour démontrer l'utilisation de ces classes en affichant les produits avec ou sans TVA.

Transféré par

Hassan Zorkot
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Exemple concret

Pour mieux comprendre ce principe, je vous propose un exemple réel.

Imaginons que nous souhaitions mettre en place un système de vente en ligne


qui charge des produits depuis une base de données.
Pour la simplicité de l’exemple, la base de données est simulée avec une liste d’objet
en mémoire.

Le projet d’exemple contient deux classes importantes :

 La classe Product qui contient les informations d’un produit


 La classe Database qui s’occupe de charger les données
Voici le code de la classe Product :

namespace SrpDemo
{
public class Product
{
public string Name { get; private set ; }

public double Price { get; private set ; }

public Product(string name, double price)


{
Name = name;
Price = price;
}
}
}
Voici le code de la classe Database :

using [Link];
using [Link];

namespace SrpDemo
{
public class Database
{
List<Product > productsInMemory;

public void Connect()


{
// simulate database connection
}

//Chargement des données


public void LoadData()
{
productsInMemory = new List <Product>();
[Link]( new Product ("Product1", 100));
[Link]( new Product ("Product2", 255));
}
public IEnumerable <Product> GetProducts( bool applyVAT)
{
Connect();
LoadData();

// simulate database query (using linq)


var products = (from p in productsInMemory select p).AsEnumerable();
double vat = applyVAT ? 1.196 : 1;

// apply VAT
return from p in products
select new Product([Link], [Link] * vat);
}
}
}

Dans cet exemple, j’ai crée une application du type console (ce qui est le projet le
plus simple possible). Voici le code de la classe Program :

using System;

namespace SrpDemo
{
class Program
{
static void Main(string[] args)
{
Database db = new Database();
var products = [Link](true );

foreach (var p in products)


[Link]("{0} = {1} Euros TTC" , [Link], [Link]);

// To make a pause
[Link]();
}
}
}

Vous aimerez peut-être aussi