• 工厂模式


     1 package com.jdk7.chapter2.factory;
     2 
     3 public class Factory {
     4     //定义具体的类型,该类型只属于该类
     5     public static final String SELECTTION_SORT = "SelectSort";
     6     public static final String BUBBLE_SORT = "bubbleSort";
     7     public static final String LINEARINSERT_SORT = "linearInsertSort";
     8     public static final String QUICK_SORT = "quickSort";
     9     
    10     //因为这里调用了静态常量SELECTTION_SORT等,所以该方法要为静态的
    11     public static SortNumber getSortNumber(String id){
    12         if(id.equalsIgnoreCase(SELECTTION_SORT)){
    13             return new SelectSort();
    14         }else if(id.equalsIgnoreCase(BUBBLE_SORT)){
    15             return new BubbleSort();
    16         }else if(id.equalsIgnoreCase(LINEARINSERT_SORT)){
    17             return new LinearInsertSort();
    18         }else if(id.equalsIgnoreCase(QUICK_SORT)){
    19             return new QuickSort();
    20         }else{
    21             System.out.println("factory中无该类型");
    22             return null;
    23         }
    24     }
    25 }
     1 package com.jdk7.chapter2.factory;
     2 
     3 public class FactoryTest {
     4     public static void printIntArray(int[] array){
     5         if(array==null){
     6             return;
     7         }else{
     8             for(int i=0;i<array.length;i++){
     9                 System.out.print(array[i]+" ");
    10             }
    11         }
    12         System.out.println();
    13     }
    14     
    15     public static void main(String[] args) {
    16         int[] array = new int[] {5,8,7,6,1,4,3,2};
    17         
    18         System.out.println("===============SELECTTION_SORT===============");
    19         int[] a = Factory.getSortNumber(Factory.SELECTTION_SORT).sortASCNumber(array);
    20         printIntArray(a);
    21         
    22         System.out.println("===============BUBBLE_SORT===============");
    23         int[] b = Factory.getSortNumber(Factory.BUBBLE_SORT).sortASCNumber(array);
    24         printIntArray(b);
    25         
    26         System.out.println("===============LINEARINSERT_SORT===============");
    27         int[] c = Factory.getSortNumber(Factory.LINEARINSERT_SORT).sortASCNumber(array);
    28         printIntArray(c);
    29         
    30         System.out.println("===============QUICK_SORT===============");
    31         int[] d = Factory.getSortNumber(Factory.QUICK_SORT).sortASCNumber(array);
    32         printIntArray(d);
    33     }
    34 }
    35 
    36 执行结果:
    37 ===============SELECTTION_SORT===============
    38 1 2 3 4 5 6 7 8 
    39 ===============BUBBLE_SORT===============
    40 1 2 3 4 5 6 7 8 
    41 ===============LINEARINSERT_SORT===============
    42 1 2 3 4 5 6 7 8 
    43 ===============QUICK_SORT===============
    44 1 2 3 4 5 6 7 8 

    其余类代码详见:http://www.cnblogs.com/celine/p/8290254.html

  • 相关阅读:
    3503: [Cqoi2014]和谐矩阵
    2734: [HNOI2012]集合选数
    P3900 [湖南集训]图样图森破
    4557: [JLoi2016]侦察守卫
    牛客OI周赛6-提高组 B 践踏
    连续区间的最大公约数
    Wannafly挑战赛5 D. 子序列
    牛客国庆集训派对Day1 B. Attack on Titan
    4538: [Hnoi2016]网络
    [SHOI2015]超能粒子炮·改
  • 原文地址:https://www.cnblogs.com/celine/p/8297647.html
Copyright © 2020-2023  润新知