/**
* 模式名称:工厂模式
* 模式特征:通过一个通用的接口创建不同的类对象
* 模式用途:面向接口编程
*
*/
public class Factory
{
//各种排序方法的命令标示
public static final String SELECTION_SORT="selection";
public static final String BUBBLE_SORT="bubble";
public static final String LINEARINSERT_SORT="linear";
public static final String QUICK_SORT = "quick";
public static ISortNumber getOrderNumber(String id)
{
//String的equalsIgnoreCase方法在比较两个字符串是否相等时不区分大小写
if(SELECTION_SORT.equalsIgnoreCase(id))
{
return new SelectionSort();
}
else if(BUBBLE_SORT.equalsIgnoreCase(id))
{
return new BubbleSort();
}
else if(LINEARINSERT_SORT.equalsIgnoreCase(id))
{
return new LinearInsertSort();
}
else if(QUICK_SORT.equalsIgnoreCase(id))
{
return new QuickSort();
}
else
{
return null;
}
}
/**
* 输出整型数组
* @param array
*/
public static void printIntArray(int[] array)
{
if(array!=null)
{
for(int i=0;i<array.length;i++)
{
System.out.print(array[i] + " ");
}
System.out.println();
}
}
public static void main(String[] args)
{
int[] intarray = new int[]{6,1,3,5,4};
System.out.println("排序前的数组是:");
printIntArray(intarray);
System.out.println("用选择排序法对数组进行升序排序后的结果是:");
int[] orderedArray = Factory.getOrderNumber(Factory.SELECTION_SORT)
.sortASC(intarray);
printIntArray(orderedArray);
System.out.println("用冒泡排序法对数组进行升序排序后的结果是:");
orderedArray = Factory.getOrderNumber(Factory.BUBBLE_SORT).sortASC(intarray);
printIntArray(orderedArray);
System.out.println("用线性插入排序法对数组进行升序排序后的结果是:");
orderedArray = Factory.getOrderNumber(Factory.LINEARINSERT_SORT).sortASC(intarray);
printIntArray(orderedArray);
System.out.println("用快速排序法对数组进行升序排序后的结果是:");
orderedArray = Factory.getOrderNumber(Factory.QUICK_SORT).sortASC(intarray);
printIntArray(orderedArray);
}
}
Factory工厂模式
最新推荐文章于 2024-04-25 09:25:45 发布
本文介绍了一种使用工厂模式创建不同排序算法实例的设计方法。通过一个通用接口可以根据具体需求选择并应用选择排序、冒泡排序、线性插入排序或快速排序来对整型数组进行升序排列。
785

被折叠的 条评论
为什么被折叠?



