Les modèles de conception sont des solutions éprouvées aux problèmes de programmation courants. En C++, ils aident à améliorer l'organisation du code, la réutilisabilité et la maintenance. Cet article explore des exemples pratiques de modèles de conception populaires et comment ils peuvent être appliqués pour résoudre des problèmes du monde réel.

Modèle monotone

Le modèle Singleton garantit qu'une classe n'a qu'une seule instance et fournit un point d'accès global à celle-ci. Il est utile pour gérer des ressources partagées telles que les paramètres de configuration ou les systèmes de journalisation.

Exemple de mise en œuvre :

Code:

```cpp class Logger { private: static Logger* instance; Logger() {} public: static Logger* getInstance() { if (!instance) { instance = new Logger(); } instance de retour; } log de vide(const std::string& message) { // Log message } }; Logger* Logger::instance = nullptr; ``

Modèle de méthode d'usine

Le modèle de méthode Factory définit une interface pour la création d'objets mais permet aux sous-classes de modifier le type d'objets qui seront créés. Il favorise le couplage et l'évolutivité lâches.

Exemple de scénario : créer différents types de documents.

Code:

```cpp class Document { public: virtual void create() = 0; virtual ~Document() {} }; class PDFDocument : public Document { public: void create() release { // Create PDF document }; class WordDocument : public Document { public: void create() release { // Create Word document } }; class DocumentFactory { public:unique ptr createDocument() { public::unique ptr createDocument() { release std::make unique(); } }; class WordFactory: public DocumentFactory { public::unique ptr createDocument() release { release std::make unique(); } }; ````````````````````````````````````````````````````````````````

Modèle d'observateur

Le modèle Observer établit une dépendance entre les objets de façon à ce que, lorsqu'un objet change d'état, toutes ses personnes à charge soient automatiquement avisées. Il est utile pour mettre en œuvre des systèmes de gestion d'événements.

Exemple : un système d'événements simple où plusieurs observateurs réagissent à un changement.

Code:

``cpp #include #include class Observer { public: virtuel void update() = 0; virtual ~Observer() {} }; class Sujet { privé: std::vector observators; public: nul attach(Observer* observator) { observators.push back(observer); } nul notification() { for (auto* observator: observators) { observator->update(); } } }; ``````````````````````````````````````'#incluse #incluse #incluse class Observer { public: virtuel void update() = 0; virtuel ~Observer(}; class Sujet { privé::::::vector observator; public: feids; servator; servator; servator; servator; servator; servator; servator; servator; servator; servator; servator;