В этой статье описывается определение и использование моделей политики Java. Поделитесь этим для вашей ссылки, следующим образом:
1. Определение:
Определите серию алгоритмов, инкапсулируйте их один за другим и позволяйте их заменять друг другу.
2. Преимущества:
(1) Контекст и конкретная стратегия слабо связаны, поэтому контекст должен только знать, какой экземпляр он хочет использовать для реализации класса интерфейса стратегии, но не нужно знать, какой это класс.
(2) Политическая модель соответствует принципу открытия и закрытия. При добавлении нового конкретного класса нет необходимости изменять код класса контекста. Контекст может относиться к экземпляру новой конкретной политики.
Iii. Пример:
Ниже приведено подробное объяснение модели стратегии с помощью вопроса.
Экспериментальные требования:
Сяо Дин - программист в Алибабе. В этот день менеджер проекта дал ему определение класса
Работник открытого класса {int id; String name; int age;}Сяо Дин увидел, что это не определение работника, включая идентификатор номера, имя, возраст и т. Д.
Менеджер сказал, что мне нужно, чтобы вы написали функцию, которая может найти самую старую среди группы работников. Объявление метода (или что -то в этом роде):
Рабочий работник (список <Рабочие> работники);
List<Worker> workers являются данными этой партии работников. Если самый старый работник найден, работник будет возвращен. Если у работников нет узлов, верните NULL.
Отвечать:
1. Стратегия
В режиме политики этот интерфейс называется Workstrategy (в конкретных вопросах это имя можно назвать в соответствии с конкретными вопросами), а код выглядит следующим образом:
Workstrategy.java
Import java.util.list; Public Interface Workstrategy {Public Worker Ageverage (List <Работник> List);}2. Контекст
Контекстно-ориентированная политика является и интерфейс-ориентированным классом; Код заключается в следующем:
Maxage.java
Import java.util.list; открытый класс Maxage {Workstrategy Workstrategy; public void setWorkStrategy (Workstrategy Workstrategy) {this.WorkStrategy = Workstrategy; } государственный работник getFindMax (список <Borker> list) {if (workstrategy! = null) return workstrategy.ageverage (list); else {return null; }}}3. Конкретные стратегии
Конкретная стратегия заключается в реализации класса интерфейса Workstrategy, то есть абстрактного работника в интерфейсе должен быть переписан.
Ageverage (List <forever> List) Метод
Код заключается в следующем:
Стратегия maxage.java
Import java.util.list; публичный класс стратегии, реализует Workstrategy {@Override Public Worker Ageverage (List <Borker> 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. Использование режима политики
Application.java
import java.util.arraylist; import java.util.list; Public Class Application {public static void main (string [] args) {list <Borker> list = new ArrayList <> (); list.add (новый работник (1, "Zhang San", 30)); list.add (новый работник (2, "li si", 40)); list.add (новый работник (3, "Ван Ву", 33)); Maxage findage = new maxage (); findage.setWorkStrategy (New StrategyMaxage ()); Работник findw = findage.getFindMax (список); System.out.println ("wulin.com Результаты теста:"); System.out.println («Самый старый работник:»+findw.getid ()+""+findw.getName ()+""+findw.getage ()); }} класс работник {int id; String name; int возраст; public int getId () {return id; } public void setId (int id) {this.id = id; } public String getName () {return name; } public void setName (string name) {this.name = name; } public int getage () {return Age; } public void setage (int age) {this.age = age; } Public Worker (INT ID, String name, int age) {super (); this.id = id; this.name = name; this.age = возраст; } public Worker () {super (); // TODO Auto Generated Constructor Stub}}5. Результаты работы:
Для получения дополнительного контента, связанного с Java, читатели, заинтересованные в этом сайте, могут просмотреть темы: «Учебное пособие по структуре данных Java и алгоритм», «Сводка операции Java Operation Dom Узел», «Краткое изложение Java File и Directory Commine» и «Советы по эксплуатации Java Cache»
Я надеюсь, что эта статья будет полезна для всех Java Programming.