Este artigo descreve a definição e o uso dos padrões de política Java. Compartilhe -o para sua referência, como segue:
1. Definição:
Defina uma série de algoritmos, encapsulam -os um por um e permita que sejam substituídos um pelo outro.
2. Vantagens:
(1) O contexto e a estratégia específica são pouco acoplados, portanto, o contexto só precisa saber qual instância deseja usar para implementar a classe de interface estratégica, mas não precisa saber qual classe é.
(2) O modelo de política atende ao princípio de abertura e fechamento. Ao adicionar uma nova classe específica, não há necessidade de modificar o código da classe de contexto. O contexto pode se referir a uma instância da nova política específica.
Iii. Exemplo:
A seguir, é apresentada uma explicação detalhada do modelo de estratégia por meio de uma pergunta.
Requisitos experimentais:
Xiao Ding é um programador no Alibaba. Hoje em dia, o gerente do projeto deu a ele uma definição de classe
Public Class Worker {int id; Nome da string; Int Age;}Xiao Ding viu que essa não era a definição de um trabalhador, incluindo ID de número, nome, idade, etc.
O gerente disse que preciso que você escreva uma função que possa encontrar a mais antiga entre um grupo de trabalhadores. A declaração do método é (ou algo assim):
Trabalhador pesquisador (list <worker> trabalhadores);
Os List<Worker> workers parâmetros são os dados deste lote de trabalhadores. Se o trabalhador mais antigo for encontrado, o objeto do trabalhador será devolvido. Se os trabalhadores não tiverem nós, retorne nulos.
Responder:
1. Estratégia
No modo de política, essa interface é denominada estratégia de trabalho (em perguntas específicas, esse nome pode ser nomeado de acordo com perguntas específicas) e o código é o seguinte:
WorkStrategy.java
Importar java.util.list; Public Interface Workstrategy {Public Worker Ageaverrage (List <Lework> List);}2. Contexto
A política orientada para o contexto é uma classe orientada para interface; O código é o seguinte:
Maxage.java
importar java.util.list; public class maxage {workstrategy workstrategy; public void setWorkStrategy (Workstrategy Workstrategy) {this.WorkStrategy = Workstrategy; } trabalhador público getFindMax (list <livery> list) {if (workstrategy! = null) retorna workstrategy.AGeaverAge (list); else {return null; }}}3. Estratégias específicas
A estratégia específica é implementar a classe de interface da estratégia de trabalho, ou seja, o trabalhador abstrato na interface deve ser reescrito.
Método de ageaverrage (list <worker> list)
O código é o seguinte:
StrategyMaxage.java
importar java.util.list; public class StrategtionMaxage implementa o WorkStrategy {@Override Public Worker Ageaverrage (List <Retwork> list) {int fs [] = new int [list.size ()]; int maxage = 0; for (int j = 0; j <list.size (); j ++) {fs [j] = list.get (j) .getage (); if (fs [maxage] <= fs [j]) {maxage = j; }} return list.get (maxage); }}4. Uso do modo de política
Application.java
importar java.util.ArrayList; importar java.util.list; public class Application {public static void main (string [] args) {list <livery> list = new ArrayList <> (); list.add (novo trabalhador (1, "Zhang San", 30)); list.add (novo trabalhador (2, "li si", 40)); list.add (novo trabalhador (3, "Wang Wu", 33)); Maxage findage = new maxage (); findage.setWorkStrategy (new StrategyMaxage ()); Trabalhador findw = findage.getfindmax (list); System.out.println ("Wulin.com Resultados dos testes:"); System.out.println ("O trabalhador mais antigo:"+findw.getid ()+""+findw.getName ()+""+findw.getage ()); }} classe trabalhador {int id; Nome da string; Int Age; public int getId () {return id; } public void setId (int id) {this.id = id; } public string getName () {return name; } public void setName (nome da string) {this.name = name; } public int getage () {Age de retorno; } public void setage (int Age) {this.age = Age; } trabalhador público (int id, nome da string, Int Age) {super (); this.id = id; this.name = nome; this.age = idade; } public worker () {super (); // TODO Construtor GOERADO AUTOGRUTO ESTUB}}5. Resultados da operação:
Para mais conteúdo relacionado ao Java, os leitores interessados neste site podem visualizar os tópicos: "Estrutura de dados Java e tutorial de algoritmo", "Resumo da operação Java Dom Node Tips", "Resumo de Dicas de Operação de Arquivos e Diretórios de Java" e "Resumo das dicas de operação do Java Cache"
Espero que este artigo seja útil para a programação Java de todos.