战略规划形式ITeye - 凯时娱乐

战略规划形式ITeye

2019-01-10 17:59:48 | 作者: 利来 | 标签: 战略,形式,算法 | 浏览: 993

for (int i = 0; i array.length - 1; i++) { for (int j = 0; j array.length - 1 - i; j++) { if (array[j] array[j + 1]) { temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; System.out.println(Arrays.toString(array) + " bubbleSort");

 

package net.oschina.design.strategy.interfac.impl;
import java.util.Arrays;
import net.oschina.design.strategy.interfac.Sort;
 * 插入排序
 * @author Freedom
public class InsertSort implements Sort {
 @Override
 public void sort(int[] array) {
 for (int i = 1; i array.length; i++) {
 int temp = array[i];
 int j = i - 1;
 for (; j = 0 array[j] temp; j--) {
 // 将大于temp的值全体后移一个单位
 array[j + 1] = array[j];
 array[j + 1] = temp;
 System.out.println(Arrays.toString(array) + " insertSort");

 

2、父类中组合行为族的接口目标

      ①父类中组合一个算法族接口目标,意图是为了供客户端(子类)实例化的一起也实例化出某一个详细的算法族的子类目标

       ②简言之,下述笼统类的意图也是供客户端子类去详细完成,客户端实例化的一起确认详细的算法族目标

package net.oschina.design.strategy.abs;
import net.oschina.design.strategy.interfac.Sort;
 * 战略形式,笼统父类
 * @author Freedom
public abstract class SortAbstract {
 // 排序的特色,组合了行为族的接口目标
 protected Sort sort;
 public SortAbstract() {
 // 调用排序方法
 public void display(int[] array) {
 sort.sort(array);

 

3、客户端子类

package net.oschina.design.strategy.abs.userimpl;
import net.oschina.design.strategy.abs.SortAbstract;
import net.oschina.design.strategy.interfac.impl.BubbleSort;
 * 运用冒泡排序的用户
 * @author Freedom
public class BubbleUser extends SortAbstract {
 public BubbleUser() {
 sort = new BubbleSort();

 

三、战略形式的优缺陷

 

1、长处

       (1)战略形式供给了办理相关的算法族的方法。战略类的等级结构界说了一个算法或行为族。恰当运用承继能够把公共的代码移到父类里边,然后防止代码重复。

(2)战略形式将调用的算法独自封装为行为,这样与详细调用的运用者进行了别离,便于后期的保护与扩展。

 

2、缺陷

      (1)客户端有必要知道一切的战略类,并自行决定运用哪一个战略类。这就意味着客户端有必要了解这些算法的差异,以便当令挑选恰当的算法类。换言之,战略形式只适用于客户端知道算法或行为的状况。

(2)因为战略形式把每个详细的战略完成都独自封装成为类,假如备选的战略算法许多,那么目标的数目也会许多,在父类中进行组合的目标也会许多

 

四、总结

 

1、战略形式的详细完成

      别离封装行为的接口,完成行为族。父类里边组合行为族的接口目标,在子类详细实例化行为目标。

 

2、战略形式的准则

      别离改变的的部分(此改变指的是具有相同行为,可是详细完成不同如:上例中的排序算法),封装为接口,根据接口编写各种功用,此形式完成行为算法与运用者独立。

 

3、算法族之间的相等性

        战略形式一个很大的特色便是各个战略算法的相等性。关于一系列详细的战略算法,我们的位置是彻底相同的,正因为这个相等性,才干完成算法之间能够彼此替换。一切的战略算法(多个战略算法)在完成上也是彼此独立的,彼此之间是没有依靠的。

所以能够这样描绘这一系列战略算法:战略算法是相同行为的不同完成。

 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表凯时娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章