`

Java 常用API的运用,效率及技巧十一

    博客分类:
  • java
 
阅读更多

常用设计模式

1Singleton模式

Singleton模式主要作用是保证在Java应用程序中,一个Class只有一个实例存在。一般有两种方法:

Ø  定义一个类,它的构造函数为private的,所有方法为static的。其他类对它的引用全部是通过类名直接引用。例如:

private SingleClass() {}

public static String getMethod1() {}

public static ArrayList getMethod2() {}

Ø  定义一个类,它的构造函数为private的,它有一个staticprivate的该类变量,通过一个publicgetInstance方法获取对它的引用,继而调用其中的方法。例如:

private staitc SingleClass _instance = null;

private SingleClass() {}

public static SingleClass getInstance() {
    if (_instance == null) {
    		_instance = new SingleClass();
    }
    return _instance;
}

public String getMethod1() {}
public ArrayList getMethod2() {}

 

 

// 1. Abstract Factory模式
SAXParserFactory spf = SAXParserFactory.newInstance();
String validation = System.getProperty (
"javax.xml.parsers.validation", "false");
if (validation.equalsIgnoreCase("true")) {
	spf.setValidating (true);
}

// 2. Factory模式
SAXParser sp = spf.newSAXParser();
parser = sp.getParser();
parser.setDocumentHandler(this);
parser.parse (uri);

  

1. SAXParserFactory中的静态方法newInstance()根据系统属性javax.xml.parsers.SAXParserFactory不同的值生成不同的SAXParserFactory对象spf。然后SAXParserFactory对象又利用方法newSAXParser()生成SAXParser对象。

注意:

SAXParserFactory 的定义为:

public abstract class SAXParserFactory extends java.lang.Object

SAXParserFactoryImpl 的定义为:

public static SAXParserFactory newInstance() {
	String factoryImplName = null;

	try {
		factoryImplName =
		System.getProperty("javax.xml.parsers.SAXParserFactory",
				"com.sun.xml.parser.SAXParserFactoryImpl");
	} catch (SecurityException se) {
		factoryImplName = "com.sun.xml.parser.SAXParserFactoryImpl";
	}

	SAXParserFactory factoryImpl;

	try {
		Class clazz = Class.forName(factoryImplName);
		factoryImpl = (SAXParserFactory) clazz.newInstance();
	} catch (ClassNotFoundException cnfe) {
		throw new FactoryConfigurationError(cnfe);
	} catch (IllegalAccessException iae) {
		throw new FactoryConfigurationError(iae);
	} catch (InstantiationException ie) {
		throw new FactoryConfigurationError(ie);
	}

	return factoryImpl;
}

  

2. newSAXParser() 方法在SAXParserFactory定义为抽象方法,

SAXParserFactoryImpl继承了SAXParserFactory,它实现了方法newSAXParser()

public SAXParser newSAXParser() 
throws SAXException, ParserConfigurationException {
	SAXParserImpl saxParserImpl = new SAXParserImpl(this);
	return saxParserImpl;
}

 

注意:

SAXParserImpl的定义为:

public class SAXParserImpl extends javax.xml.parsers.SAXParser

SAXParserImpl的构造函数定义为:

public SAXParserImpl(SAXParserFactory spf) 
throws SAXException, ParserConfigurationException {
	super();
	this.spf = spf;
	if (spf.isValidating ()) {
		parser = new ValidatingParser();
		validating = true;
	} else {
		parser = new Parser();
	}
	if (spf.isNamespaceAware ()) {
		namespaceAware = true;
		throw new ParserConfigurationException(
"Namespace not supported by SAXParser");
	}
}

  

分享到:
评论

相关推荐

    Java 常用API的运用,效率及技巧

    Java 常用API的运用,效率及技巧 Java面向对象基本概念 2. System 3. String, StringBuffer 4. 数值,字符,布尔对象与简单类型的操作 5. Class, ClassLoader 6. Java IO系统 7. Java集合类 8. ResourceBundle, ...

    java常用API文档合集

    内含java常用API文档合集一共10份,前端和java常用文档都有。

    Java学习常用API

    java比较常用的api,自己整合的,有些会有重复,请自行筛选

    高手总结java常用API.

    高手总结java常用API,学习之用,进行分享

    java常用API大全4

    CoreReferenceJS15.chm/CSSFilter2.0_DOC_...API.chm/Spring2.0_Reference_zh_CN.chm/Spring2.5_Reference_zh_CN.chm/StrutsTag.chm

    JAVA常用API文档 中文完整版.zip

    JAVA常用API文档 中文完整版.zip

    JAVA常用API思维导图

    JAVA常用API思维导图

    java 常用api大全

    java api 包括jdbc,j2me,commons组件 jxl等

    java常用API,CHM集合.part7.rar

    java常用API,CHM集合.part7.rar

    java常用API举例

    一个详细的java常用API举例。。有代码和说明。希望可以帮助到你。

    Java常用API

    java常用API 包括java ee、se、JDK,JQueryAPI、W3C离线版、ZTree控件API等

    java常用API.pdf

    java常用API.pdf

    java常用API总结

    Java 常用API的运用,效率及技巧 1. Java面向对象基本概念 2. System 3. String, StringBuffer 4. 数值,字符,布尔对象与简单类型的操作 5. Class, ClassLoader 6. Java IO系统 7. Java集合类 8. ResourceBundle, ...

    java常用API使用方法(详细易懂)

    包含各种集合、工具类等用法解析,自我总结,内容详实,非常适合想对javaAPI有详细了解的人,适合刷算法题,还包含Lambda、函数式接口等内容

    java常用API

    此文档属于本人当初学习java基础的总结,里面是比较常用的API。大家下载下来可以当作java中API的“字典”,希望对大家有所帮助,如有错误的地方,欢迎指正,谢谢!

    多种java常用API

    本章讲解了JAVA中一些比较简单的类库:StringBuffer、包装类、Date、Calendar、Random、SimpleDateFormat、Runntime、Process 希望对大家有用。

    java API汇总大全

    java常用API, jdkAPI cssAPI jqueryAPI EasyUIAPI mysqlAPI oracleAPI solrAPI W3CschoolAPI AjaxAPI

    JAVA常用API合集(1)

    hibernate3 struts2 spring2的chm格式API文档,还有个2是J2EE5和struts1的有兴趣的话可以下来看下,希望对你有所帮助,还有什么需要可以给我说~

    java开发常用API

    java开发中常用的API,挺有用的哦!还有java API 太大了,不好上传

    java常用API-适合初学者

    java常用API. 适合初学者阅读 简单介绍了 java 的各大模块

Global site tag (gtag.js) - Google Analytics