• 策略模式


    定义:是对算法的包装,把使用算法的的责任和算法本身分割开,委派给不同的对象管理,策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类型的子类型、就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”;

    意图:针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以互相替换。策略模式使得算法可以在不影响到客户端的情况下发生变化;

     1 public class StrategyDemo{
     2     public static void main(String []args){
     3         int[] array={1,30,64,88,12,56,28};
     4         ISort bubbleSort=new BubbleSort();
     5         Context con=new Context(bubbleSort);
     6         con.sort(array);
     7         con.printArray(array);
     8     }
     9 }
    10 
    11 class Context{
    12     private ISort iSort=null;
    13     public Context(ISort iSort)
    14     {
    15         this.iSort=iSort;
    16     }
    17     
    18     public void sort(int[] array){
    19         //交给具体的策略类对象来帮忙
    20         iSort.sort(array);
    21     }
    22     //打印数组中的内容
    23     public void printArray(int[] array){
    24         for(int i=0;i<array.length;i++)
    25         {
    26             System.out.print(array[i]+" ");
    27         }
    28     }
    29 }
    30 
    31 interface ISort{
    32     public void sort(int[] array);
    33 }
    34 
    35 //封装了冒泡排序法
    36 class BubbleSort implements ISort{
    37     public void sort(int[] array){
    38         System.out.println("冒泡排序法");
    39         for(int i=0;i<array.length-1;i++){
    40             for(int j=0;j<array.length-1-i;j++){
    41                 if(array[j]>array[j+1]){
    42                     int temp=array[j];
    43                     array[j]=array[j+1];
    44                     array[j+1]=temp;
    45                 }
    46             }
    47         }
    48     }
    49 }
    50 
    51 //封装了选择排序法
    52 class SelectSort implements ISort{
    53     public void sort(int[] array){
    54         System.out.println("选择排序法");
    55         int min=0;
    56         for(int i=0;i<array.length;i++){
    57             min=i;
    58             for(int j=i+1;j<array.length;j++){
    59                 if(array[min]>array[j]){
    60                     min=j;
    61                 }
    62             }
    63             if(i!=min){
    64                 int temp=array[i];
    65                 array[i]=array[min];
    66                 array[min]=temp;
    67             }
    68         }
    69     }
    70 }
  • 相关阅读:
    DeWeb 与 Unigui的区别
    DeWeb 电脑和手机动态适配
    DeWeb --- Hello,World!
    DeWeb 简介
    Android ---------- 汉字空格
    Android ---------- List 数组转成 json格式的字符串
    Android ---------- TabLayout 实战 (一)
    Thinkphp5.0中input函数用法
    jQuery在页面加载的时候自动调用某个函数的方法(转载)
    关于wampserver的一点知识
  • 原文地址:https://www.cnblogs.com/wzy330782/p/5299755.html
Copyright © 2020-2023  润新知