Definición: El comportamiento de una clase o su algoritmo se puede cambiar en tiempo de ejecución. En el modo de política, creamos un objeto que representa varias políticas y un objeto de contexto cuyo comportamiento cambia a medida que cambia el objeto de política. El objeto de política cambia el algoritmo de ejecución del objeto de contexto.
Características:
1. El algoritmo se puede cambiar libremente.
2. Evite usar múltiples condiciones para juzgar.
3. Buena escalabilidad.
Aplicaciones en desarrollo de nivel empresarial y marcos comunes: java.servlet.http.httpservlet método de servicio
Ejemplo: Comportamiento de operación en dos números.
Public Class Demo {public static void main (string [] args) {estrategia estrategia1 = new StrategyAdd (); Estrategia estrategia2 = nueva estrategiaDiv (); Contexto context1 = nuevo contexto (estrategia1); context1.ExCute (10, 5); context1 = nuevo contexto (estrategia2); context1.ExCute (10, 5); }} Estrategia de interfaz {public void dooperation (int num1, int num2);} estrategia de clases implementa la estrategia {public void dooperation (int num1, int num2) {system.out.println ("ejecutar adición"); System.out.println (num1+"+"+num2+"="+(num1+num2)); }} Class StrategySub Implements Strategy {public void dooperation (int num1, int num2) {System.out.println ("Ejecutar subtracción"); System.out.println (num1+"-"+num2+"="+(num1-num2)); }} Estrategia de clase Implementa la estrategia {public void dooperation (int num1, int num2) {system.out.println ("ejecutar multiplicación"); System.out.println (num1+"*"+num2+"="+(num1*num2)); }} Estrategia de clase Div Implementa Estrategia {public void dooperation (int num1, int num2) {System.out.println ("Ejecutar división"); System.out.println (num1+"/"+num2+"="+(num1/num2)); }} contexto de clase {Estrategia de estrategia privada; contexto público (estrategia de estrategia) {this.strategy = estrategia; } public void Execute (int num1, int num2) {estrategia.dooperation (num1, num2); }}El modelo de política enfatiza los cambios en el tiempo de ejecución. Quizás en el código anterior, estos cambios en el tiempo de ejecución no se reflejan bien. Podemos asumir un escenario práctico, es decir, cuando un parámetro de objeto se pasa a un método, supongamos que tenemos que elegir diferentes métodos de acuerdo con los diferentes parámetros, consideraremos que si los juzgaremos, mientras que el modelo de política clasifica estos if-else, cada juzga una clase, y luego el objeto se presenta y directamente llama el método de interfaz de política. La clase específica de los parámetros del objeto pertenece es juzgada por JVM. No necesitamos comprender los tipos de atributos de parámetros del objeto, etc. Esto no solo simplifica nuestro trabajo de desarrollo, sino que también tiene una mejor escalabilidad en comparación con IF-ELSE.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.