`
Scliu123
  • 浏览: 41368 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

JDK_实例(Factory工厂模式)

阅读更多

接口

package book.oo.factory;

/**
 * 接口类,完成数字的排序功能
 */
public interface IOrderNumber {
	/**
	 * 对整数按升序排序
	 * @param intArray	待排序的整数数组
	 * @return	排序后的整数数组
	 */
	public int[] orderASC(int[] intArray);
	
	/**	对整数按降序排序	*/
	public int[] orderDESC(int[] intArray);
}

 

 

工厂类

package book.oo.factory;

import book.oo.sort.ISortNumber;
import book.oo.sort.impl.BubbleSort;
import book.oo.sort.impl.LinearInsertSort;
import book.oo.sort.impl.QuickSort;
import book.oo.sort.impl.SelectionSort;

/*
 * 模式名称:工厂模式
 * 模式特征:通过一个通用的接口创建不同的类对象
 * 模式用途:面向接口编程,动态联编,多态性
 **/
public class Factory {
	public static final String SELECTION_SORT = "selection";
	public static final String BUBBLE_SORT = "bubble";
	public static final String LINEARINSERT_SORT = "liner";
	public static final String QUICK_SORT = "quick";

	public static ISortNumber getOrderNumber(String id) {
		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);
	}
}

 

分享到:
评论

相关推荐

    JDK_API_1.7

    9. **新的集合工厂方法(Collection Factory Methods)** `Collections`和`Arrays`类添加了新的工厂方法,如`of()`、`copyOf()`等,方便创建不可变集合和数组。 10. **改进的异常处理** 异常检查更加灵活,可以抛...

    JAVA设计模式在JDK中的应用

    JDK中的抽象工厂模式示例如下: - `java.util.Calendar#getInstance()`: 创建日历实例。 - `java.util.Arrays#asList()`: 创建列表实例。 - `java.util.ResourceBundle#getBundle()`: 获取资源绑定。 - `java.sql....

    JDK中的23个设计模式简介

    抽象工厂模式是指创建一组有关联的对象实例。例如,java.util.Calendar#getInstance() 方法将创建一个 Calendar 对象,java.util.Arrays#asList() 方法将创建一个 List 对象。 9. 生成器模式(Builder Pattern) ...

    jdk中设计模式

    4. **Abstract Factory(抽象工厂模式)**:例如`java.sql`包和`UIManager`,提供创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。 5. **Builder(建造者模式)**:如`DocumentBuilder`,将复杂的...

    设计模式专题,代理模式,工厂模式

    **工厂模式(Factory Pattern)** 工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,当创建对象时,我们不会对客户端暴露创建逻辑,而是引用一个共同的接口来指向新创建的对象。这有助...

    JDK中有关23个经典设计模式的示例

    3. 抽象工厂模式(Abstract Factory):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。例如,`javax.sql.DataSource`接口,它允许创建不同数据库供应商的连接对象。 4. 建造者模式...

    《Java设计模式》课后习题参考答案-刘伟(20180723).pdf

    2. 设计模式的JDK实例 JDK中许多类和方法都使用了设计模式,这些模式的应用帮助实现了代码的高内聚、低耦合,提高了代码的可维护性和扩展性。下面介绍几种常见的设计模式及其在JDK中的应用实例: a) 抽象工厂模式...

    Java JDK实例宝典

    9 Factory工厂模式 2. 10 Adapter适配器模式 第3章 数字 3. 1 数字与数字封装类 3. 2 格式化数字 3. 3 数字的舍入 3. 4 转换数字的进制 3. 5 生成随机数 3. 6 处理大数字 第4...

    动态代理和工厂方法例子

    文件“005_Factory_Series_DesignPattern”可能包含一系列关于工厂方法模式的示例,可能包括简单工厂、工厂方法、抽象工厂等变体。这些例子可以帮助开发者理解如何在不同的场景下选择和使用工厂方法模式。 接下来,...

    javax.xml.bind jdk1.5缺包

    具体来说,异常信息 "java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory" 显示在尝试创建`com.sun.xml.bind.v2.ContextFactory`类的实例时,该类的定义没有在运行时环境中找到。这通常是由于...

    java 23种设计模式的类图

    3. **抽象工厂模式(Abstract Factory)**:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。 4. **建造者模式(Builder)**:将复杂对象的构建与其表示分离,使得同样的构建过程可以创建...

    设计模式课设

    抽象工厂模式提供了一种解决方案,它允许我们在不指定具体类的情况下创建一系列相关的对象。 - **UML结构**: - `Factory`(抽象工厂):定义创建一系列产品的接口。 - `ConcreteFactory`(具体工厂):实现抽象...

    JDK自带方法解析xml特定格式的字符串

    - 使用`DocumentBuilderFactory`创建一个解析器工厂实例。 - 调用`newDocumentBuilder()`方法生成`DocumentBuilder`实例,它负责解析XML字符串。 2. **解析XML字符串**: - 使用`parse()`方法,传入一个`Input...

    java设计模式详解,java design pattern

    2. 工厂模式(Factory Pattern):定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂模式让类的实例化推迟到子类中进行。 3. 抽象工厂模式(Abstract Factory Pattern):提供一个接口,用于创建...

    jdk1.5API中文chm版

    7. **类型安全的异构容器(Collections Factory Methods)**:如`Collections.emptyList()`, `Collections.singletonList()`, `Collections.singletonMap()`等,创建已知类型的安全集合实例。 8. **可插拔的类型...

    Java设计模式(疯狂Java联盟版)

    创建型模式关注对象的创建,如单例模式(Singleton)、工厂模式(Factory)和建造者模式(Builder)。这些模式提供了不同的方式来创建对象,使得对象的创建过程更加灵活,同时隐藏了具体的创建逻辑。 结构型模式则...

    Java 与模式 pdf格式

    Java中的`AbstractFactory`、`SimpleFactory`和`FactoryMethod`都是工厂模式的不同变体。 3. **抽象工厂模式**:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。在Java中,它常用于不同平台...

    design_model:设计模式的相关学习(基于Java)

    2. 工厂模式:了解简单工厂、工厂方法和抽象工厂模式,以及它们在不同场景下的应用。 3. 构造器模式:探索如何使用建造者模式(Builder)来构建复杂对象,以及它的优点和使用场景。 4. 代理模式:学习静态代理和动态...

    Java EE设计模式:Spring企业级开发最佳实践_JavaEE_企业应用开发_

    3. **工厂模式(Factory)**:Spring通过BeanFactory和ApplicationContext实现了工厂模式,它们是创建和管理bean的工厂,可以根据配置动态地创建对象。 4. **代理模式(Proxy)**:Spring AOP(面向切面编程)利用...

Global site tag (gtag.js) - Google Analytics