Modèle d'agent du modèle de conception (y compris l'exemple complet UML)

Modèle d'agent du modèle de conception

1. Mode proxy

1.1 Définition et caractéristiques

  Définition du mode proxy: Pour une raison quelconque, un agent doit être fourni à un objet pour contrôler l'accès à l'objet. À ce stade, l'objet d'accès ne convient pas ou ne peut pas se référer directement à l'objet cible, et l'objet proxy agit comme intermédiaire entre l'objet d'accès et l'objet cible.

  Les principaux avantages du modèle proxy sont:

  • Le mode proxy joue un rôle d'intermédiaire entre le client et l'objet cible et protège l'objet cible;
  • L'objet proxy peut étendre la fonction de l'objet cible;
  • Le mode proxy peut séparer le client de l'objet cible, ce qui réduit dans une certaine mesure le couplage du système;

  Les principaux inconvénients sont:

  • L'ajout d'un objet proxy entre le client et l'objet cible entraînera un ralentissement de la vitesse de traitement des demandes;
  • Augmentation de la complexité du système;

1.2 Structure du modèle

  Les principaux rôles du modèle proxy sont les suivants.

  1. Classe Subject subject (Subject): Déclare les méthodes métier implémentées par des sujets réels et des objets proxy via des interfaces ou des classes abstraites.
  2. Classe de sujet réel: réalise l'entreprise spécifique dans le sujet abstrait, est l'objet réel représenté par l'objet proxy et est l'objet à référencer éventuellement.
  3. Classe Proxy (Proxy): fournit la même méthode que le thème réel, qui contient des références au thème réel, il peut accéder, contrôler ou étendre les fonctionnalités du thème réel.

1.3 Diagramme UML

Insérez la description de l'image ici

1.4 Origine du problème

  Par exemple, dans la vie, une star très chaude, il y a beaucoup de gens qui veulent chanter et danser, si tout le monde vient directement à la star, alors la star sera trop occupée avec ce genre de chose, si vous voulez le résoudre, vous devez passer Une autre personne est venue l'aider à traiter spécifiquement avec lui, cette personne est l'agent. En termes de conception de code, il est inapproprié ou ne peut pas accéder directement à l'objet cible.

1.5 Solution

  La raison pour laquelle un objet proxy est généré en cours de développement est principalement utilisée pour intercepter / bloquer l'accès à des objets métier réels. L'objet proxy doit avoir la même méthode que l'objet cible.

1.6 Solution


/**
 * @author 26530
 *     节目单
 */
public interface Programme 
{
     /**
               * 唱歌
     */
    void sing();
     /**
                * 跳舞
     */
    void dance();
}

public class Middleman implements Programme
{

	private Star star ;
	@Override
	public void sing() 
	{
		star.sing();
	}

	public Middleman() {
		super();
		// TODO Auto-generated constructor stub
	}

	public Middleman(Star star) {
		super();
		this.setStar(star);
	}

	@Override
	public void dance() 
	{
		star.dance();
	}

	public Star getStar() {
		return star;
	}

	public void setStar(Star star) {
		this.star = star;
	}

}


public class Star implements Programme{

	@Override
	public void sing() 
	{
		System.out.println("明星唱歌");
	}

	@Override
	public void dance()
	{
		System.out.println("明星跳舞");
	}

}
public class Test 
{
     public static void main(String[] args) 
     {
		  //某地找刘德华唱歌,跳舞,只要找到经纪人,和他签下唱歌,跳舞合同,就可以了。
    	 Middleman middleman = new Middleman();
    	 Star star = new Star();
    	 middleman.setStar(star);
    	 middleman.dance();//经纪人跳舞就是刘德华跳舞
    	 middleman.sing();
    	 
	 }
}

A publié 56 articles originaux · Like1 · Visites1168

Je suppose que tu aimes

Origine blog.csdn.net/atu1111/article/details/105454456
conseillé
Classement