Mode de base :
1. Modèle d'interface : lorsque plusieurs classes fournissent des services similaires, via le modèle d'interface, les services communs fournis par différentes classes de fournisseurs de services peuvent être abstraits et déclarés comme une interface indépendante. Cela permet aux objets clients d'utiliser différentes classes de fournisseurs de services de manière transparente et sans aucune modification.
2. Modèle de classe abstrait : peut être utilisé pour concevoir un cadre qui fournit une implémentation cohérente des fonctions communes d'un ensemble de classes associées. Contrairement aux interfaces, les méthodes des interfaces doivent être implémentées dans des sous-classes. Les méthodes nécessaires peuvent être implémentées dans des classes abstraites, et les sous-classes doivent uniquement hériter, réduisant ainsi les implémentations de méthodes redondantes.
3. Modèle de méthode privée : certaines méthodes ne peuvent être utilisées qu'en interne par d'autres méthodes ou classes internes dans le même objet. Ce modèle recommande de concevoir ces méthodes comme des méthodes privées.
4. Modèle d'accesseur : dans un objet, toutes les variables d'instance sont déclarées privées et des méthodes d'accès publiques sont fournies pour accéder à l'état public de l'objet ; les clients peuvent changer un objet d'un état à un autre en utilisant des accesseurs dans un autre état ; l'objet a un accès direct à ses variables privées. Le javaBean dans JSP utilise ce modèle.
5. Gestionnaire de données constantes : Très approprié pour concevoir un mécanisme de stockage efficace pour gérer les données constantes utilisées par différents objets de l'application. Ce modèle suggère que les données dont les valeurs sont permanentes dans une application doivent être stockées dans un objet distinct pour que d'autres objets de l'application puissent y accéder, plutôt que d'être autorisées à apparaître dans différents objets. Ce type de séparation fournit un référentiel centralisé facile à gérer pour les données constantes de votre application.
6. Objets immuables : définissez toutes les variables d'instance dans le constructeur et ne fournissez aucune autre méthode pouvant modifier l'état de l'objet ; déclarez la classe comme un type fanal pour empêcher la possibilité de modifier l'état en remplaçant les méthodes de classe. Toutes les variables d'instance sont écrites en type fanal, de sorte qu'elles ne peuvent être affectées que via la méthode constructeur ; si l'une des variables d'instance contient une référence à un objet, alors la méthode get correspondante inggai renvoie une copie de l'objet au lieu de Really the. objet lui-même. Le mécanisme ci-dessus peut garantir la sécurité des threads et éliminer automatiquement tous les problèmes liés à l'accès simultané.
7. Moniteur : il acquiert un verrou sur un tel objet pour garantir qu'un seul thread est autorisé à exécuter n'importe quelle méthode de l'objet à la fois. Cela peut être fait en Java en utilisant le mot-clé synchronisé dans la déclaration de la méthode objet.
Mode création :
Rôle : gère l'une des tâches les plus couramment effectuées dans les applications OO : la création d'objets ; prend en charge l'utilisation de mécanismes contraints simples et cohérents pour créer des objets ; permet l'encapsulation des détails sur les classes et la manière de créer des instances ; prend en charge l'utilisation d'interfaces à réduire ; La génération du couplage.
1. Méthode d'usine : si l'objet client ne sait pas quelle classe instancier, il peut utiliser la méthode d'usine pour créer une instance de la classe correspondante dans la hiérarchie de classes ou le groupe de classes associé. Les méthodes d'usine peuvent être conçues dans le cadre du client lui-même, ou elles peuvent être conçues dans des classes individuelles. Parmi elles, la classe contenant la méthode factory ou l'une de ses sous-classes détermine quelle classe est sélectionnée et comment l'instancier.
2. Singleton : fournit un mécanisme de création d'objet contraint pour garantir qu'il n'existe qu'une seule instance d'une classe spécifiée.
3. Usine abstraite : permet la création d'instances de classes au sein d'un ensemble de classes liées sans que l'objet client spécifie la classe concrète réelle à instancier.
4. Prototype : fournit un moyen simple de créer des objets, c'est-à-dire de copier des objets à partir d'objets existants.
5. Générateur : permet la création d'objets complexes, peut fournir uniquement les informations sur le type et le contenu de l'objet et rend les détails de la création d'objet transparents pour le client. Cette approche permet au même processus de construction de générer différentes représentations d'objets.