Explication détaillée du mode de délégation

       La fonction de base du modèle de délégation est d'être responsable de l'appel et de l'attribution des tâches, comme le modèle d'agence, mais le modèle d'agence se concentre sur le processus, tandis que le modèle de délégation se concentre sur les résultats. Le modèle de délégation est largement utilisé au printemps, et il existe également de nombreux scénarios dans la vie réelle. Par exemple, lorsque le patron attribue des tâches au chef de projet, le chef de projet attribue les tâches aux employés correspondants.

Créer une interface pour les employés

interface publique IEmployee { 
    public void doing (String commond); 
}

Créer une classe d'employés, employé A

classe publique IEmployeeA implémente IEmployee { 

    @Override 
    public void doing (String commond) { 
        System.out.println ("aaaaaaaaaaaaaaaa"); 
    } 
}

Créer une classe d'employés, employé B

classe publique IEmployeeB implémente IEmployee { 
    @Override 
    public void doing (String commond) { 
        System.out.println ("bbbbbbbbbbbbbbbbb"); 
    } 
}

Créer une classe de chef de projet

public class Leader implémente IEmployee { 

    private Map <String, IEmployee> target = new HashMap <String, IEmployee> (); 
    public Leader () { 
        target.put ("前端", nouveau IEmployeeA ()); 
        target.put ("后端", nouveau IEmployeeB ()); 
    } 
    @Override 
    public void doing (String commond) { 
        cibles.get (commond) .doing (commond); 

    } 
}

Créer une classe de boss

Public class Boss { 
    commande publique void (commande String, chef leader) { 
        leader.doing (commande); 
    } 
}

Créer une classe de test

public class DemoUtil { 
    public static void main (String [] args) lance Exception { 
      
        new Boss (). command ("后端", new Leader ()); 
    } 
}

Résultats de test:

bbbbbbbbbbbbbbbbbb

D'après les résultats ci-dessus, on peut voir que puisque le chef de projet a assigné la tâche aux employés back-end, c'est l'employé B qui a fait le travail arrangé par le patron.

DispatcherServlet au printemps est le mode de délégation utilisé et le mode de délégation est implémenté à la fin de Delegate.

Alors, comment dispatcherServlet implémente-t-il le mode de délégation dans Spring MVC?

 

Créer une classe affaires

Classe publique ItemController { 
    public void getItemById () {}; 
}
Public class OrderController { 
    public void getOrderById () {}; 
}

Créer une classe DispatcherServlet

classe publique DispatcherServlet étend HttpServlet { 
    private void doDispatch (requête HttpServletRequest, réponse HttpServletResponse) { 
        String uri = request.getRequestURI (); 
        ID de chaîne = request.getParameter ("mid"); 

        if ("getItemById"). equals (uri) { 
            new ItemController (). getItemById (id); 
        } else if ("getOrderById" .equals (uri)) { 
            nouveau OrderController (). getOrderById (id); 
        } else { 
            response.getWriter (). write ("404 not found"); 
        } 
    } 

    service void protégé (HttpServletRequest req, HttpServletResponse resp) { 
        try { 
            doDispatch (req, resp); 
        } catch (Exception e) {
            e.printStackTrace (); 
        } 
    } 
}

C'est la fin du modèle de délégation, allons dormir.

 

Je suppose que tu aimes

Origine blog.csdn.net/wzs535131/article/details/108589937
conseillé
Classement