Definição: o comportamento de uma classe ou seu algoritmo pode ser alterado em tempo de execução. No modo de política, criamos um objeto que representa várias políticas e um objeto de contexto cujo comportamento muda à medida que o objeto de política muda. O objeto de política altera o algoritmo de execução do objeto de contexto.
Características:
1. O algoritmo pode ser alterado livremente.
2. Evite usar várias condições para julgar.
3. Boa escalabilidade.
Aplicações em desenvolvimento de nível corporativo e estruturas comuns: java.servlet.http.httpServlet Método
Exemplo: Comportamento de operação em dois números.
classe pública Demo {public static void main (string [] args) {estratégia estratégia1 = new StrategyAdd (); Estratégia de estratégia2 = nova estratégiaDiv (); Contexto context1 = novo contexto (estratégia1); context1.execute (10, 5); context1 = novo contexto (estratégia2); context1.execute (10, 5); }} Estratégia de interface {public void Dooperation (int num1, int num2);} classe StrategyAdd implementa a estratégia {public void Dooperation (int num1, int num2) {System.out.println ("Execute Addition"); System.out.println (num1+"+"+num2+"="+(num1+num2)); }} classe Strategysub implementa a estratégia {public void Dooperation (int num1, int num2) {System.out.println ("Executar subtração"); System.out.println (num1+"-"+num2+"="+(num1-num2)); }} classe StrategyMul implementa a estratégia {public void Dooperation (int num1, int num2) {System.out.println ("Execute multiplicação"); System.out.println (num1+"*"+num2+"="+(num1*num2)); }} classe StrategyDiv implementa a estratégia {public void Dooperation (int num1, int num2) {System.out.println ("Execute Division"); System.out.println (num1+"/"+num2+"="+(num1/num2)); }} contexto de classe {estratégia privada; Contexto público (estratégia de estratégia) {this.strategy = estratégia; } public void Execute (int num1, int num2) {Strategy.DooPeation (num1, num2); }}O modelo de política enfatiza as alterações no tempo de execução. Talvez no código acima, essas alterações no tempo de execução não sejam bem refletidas. Podemos assumir um cenário prático, ou seja, quando um parâmetro de objeto é transmitido para um método, suponha que tenhamos que escolher diferentes métodos de acordo com os diferentes parâmetros, consideraremos se-Else julgar, enquanto o modelo de política classifica esses if-else, cada um julgará uma classe e, em seguida, o objeto vier e diretamente o método de interface da política. A classe específica dos parâmetros de objeto pertencente é julgada pela JVM. Não precisamos entender os tipos de atributos do parâmetro do objeto, etc. Isso não apenas simplifica nosso trabalho de desenvolvimento, mas também tem melhor escalabilidade em comparação com o IF-ELSE.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.