En génie logiciel, le patron stratégie est un patron de conception (design pattern) de type comportemental grâce auquel des algorithmes peuvent être sélectionnés à la volée au cours du temps d'exécution selon certaines conditions.
Le patron de conception stratégie est utile pour des situations où il est nécessaire de permuter dynamiquement les algorithmes utilisés dans une application. Le patron stratégie est prévu pour fournir le moyen de définir une famille d'algorithmes, encapsuler chacun d'eux en tant qu'objet, et les rendre interchangeables. Ce patron laisse les algorithmes changer indépendamment des clients qui les emploient.
Dès lors qu'un objet peut effectuer plusieurs traitements différents, dépendant d'une variable ou d'un état.
#include
#include
// IStrategie est l’interface permettant d’exécuter un algorithme
class IStrategie
{
public:
void execute() { process(); } // NVI
virtual ~IStrategie() = default; // Héritage, donc destructeur public virtuel
private:
virtual void process() = 0; // IStrategie::process() est une fonction virtuelle pure
// et de ce fait IStrategie est une classe abstraite
// autrement dit une classe qui ne peut être instanciée
};
class AlgorithmeA : public IStrategie
{
private:
// Chaque Algorithme redéfinit la façon de procéder
void process() override
{
std::cout < "Traitement A" < std::endl;
}
};
class AlgorithmeB : public IStrategie
{
private:
void process() override
{
std::cout < "Traitement B" < std::endl;
}
};
class AlgorithmeC : public IStrategie
{
private:
void process() override
{
std::cout < "Traitement C" < std::endl;
}
};
// Contexte est la classe visible par le client.
// Elle fait le lien entre les demandes du client et l’algorithme (ou les algorithmes) à utiliser.
class Contexte final
{
private:
std::unique_ptr
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
En informatique, et plus particulièrement en développement logiciel, un patron de conception (souvent appelé design pattern) est un arrangement caractéristique de modules, reconnu comme bonne pratique en réponse à un problème de conception d'un logiciel. Il décrit une solution standard, utilisable dans la conception de différents logiciels. Un patron de conception est issu de l'expérience des concepteurs de logiciels. Il décrit un arrangement récurrent de rôles et d'actions joués par des modules d'un logiciel, et le nom du patron sert de vocabulaire commun entre le concepteur et le programmeur.
La programmation orientée objet (POO), ou programmation par objet, est un paradigme de programmation informatique. Elle consiste en la définition et l'interaction de briques logicielles appelées objets ; un objet représente un concept, une idée ou toute entité du monde physique, comme une voiture, une personne ou encore une page d'un livre. Il possède une structure interne et un comportement, et il sait interagir avec ses pairs.
Learn the basics of cement chemistry and laboratory best practices for assessment of its key properties.
Explore l'équation d'onde pour une chaîne vibrante et sa solution numérique en utilisant des formules de différence finie et le schéma Newmark dans MATLAB/GNU Octave.
Couvre les fondamentaux de LabVIEW, l'acquisition de données, l'acquisition de sons et les modèles de conception comme les machines d'État et les producteurs-consommateurs.
This seminar teaches the participants to use advanced Python concepts for writing easier to read, more flexible and faster code.
It teaches concepts in a hands-on and tangible fashion, providing examp
Mettre en pratique les bases de la programmation vues au semestre précédent. Développer un logiciel structuré. Méthode de debug d'un logiciel. Introduction à la programmation scientifique. Introductio
In the information age, the Web and the growing global connectivity drastically simplified our access to information. Learning and fact-checking from online resources is nowadays part of our daily routine. Studying the dynamic associated with online conten ...
EPFL2022
This contribution situates the role of public media art, critical making and reappropriation techniques as sociopolitical vehicles for enhancing climate actions and awareness in contexts of technological inequalities and electronic waste in Accra, Ghana. O ...
2023
Binary dielectric metasurfaces are arrays of sub-wavelength structures that act as a thin layer of artificial material. They are generally lossless and relatively simple to fabricate since only a single structuring step is required. By carefully designing ...