JDK源码阅读- 2设计模式,创建型模式

  

。创建型模式

<李>

抽象工厂(抽象工厂)

<代码>

,,  JDK源码阅读- 2设计模式,创建型模式

DocumentBuilderFactory通过FactoryFinder实例化具体的工厂。


使用例子:   DocumentBuilderFactory  docBuilderFactory =, DocumentBuilderFactory.newInstance ();   DocumentBuilder  docBuilder =, docBuilderFactory.newDocumentBuilder ();   Document  doc =, docBuilder.parse  (new 文件(“xxx.xml”)),


, <代码>,

 JDK源码阅读- 2设计模式,创建型模式

,使用例子:   ,StreamSource  source =, new  StreamSource (…);   ,StreamSource  stylesource =, new  StreamSource (…);      ,TransformerFactory  factory =, TransformerFactory.newInstance ();   ,Transformer  Transformer =, factory.newTransformer (stylesource);      ,StreamResult  result =, new  StreamResult (system . out);   ,transformer.transform(源,结果)

,,

, <代码>,<强>

,结构,几乎是和前两次一样。

 

这里我们看到状态的转换操作都会返回原来的类型的对象,这样就可以构建生成链。


<代码>,

参见上例。


3。工厂方法(工厂方法),

<代码>,java.util.Calendar # getInstance()

 JDK源码阅读- 2设计模式,创建型模式

工厂方法的构造方法就在所要生成的类型上。这个抽象工厂有很大不同。

其它的可参见:

<代码>,java.util.ResourceBundle # getBundle()

<代码>,java.text.NumberFormat # getInstance()

<代码>,charset # forName()

<代码>,java.net.URLStreamHandlerFactory # createURLStreamHandler (String) ,

4。原型模式(Prototye)

<李>

<代码> java . lang . object #克隆()


5。单例模式(单),

<代码>,java.lang.Runtime # getRuntime()

<代码>,java.awt.Desktop # getDesktop()

<人力资源/>



JDK源码阅读- 2设计模式,创建型模式