91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JDK 源碼 閱讀 - 2 - 設計模式 - 創建型模式

發布時間:2020-07-15 11:13:03 來源:網絡 閱讀:433 作者:simon_wzing 欄目:關系型數據庫

A.創建型模式

  1. 抽象工廠(Abstract Factory)

    javax.xml.parsers.DocumentBuilderFactory

  JDK 源碼 閱讀 - 2 - 設計模式 - 創建型模式

DocumentBuilderFactory通過FactoryFinder實例化具體的Factory.


使用例子:
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document doc = docBuilder.parse (new File("xxx.xml"));


  javax.xml.transform.TransformerFactory

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(source, result)

   

  javax.xml.xpath.XPathFactory

   The structure is almost the same as the previous two.

XPathFactory xpathFactory = XPathFactory.newInstance();
XPath xpath = xpathFactory.newXPath();
XPathExpression expr = xpath.compile(XPATH_EXPRESSION_STRING);
Object result = expr.evaluate(Object item, QName returnType);

 


2.生成器模式(Builder)

 java.lang.Appendable

 java.lang.StringBuilder#append()

 java.lang.StringBuffer#append() 

JDK 源碼 閱讀 - 2 - 設計模式 - 創建型模式

這里我們看到狀態的轉換操作都會返回原來的類型的對象,這樣就可以構建生成鏈。


 java.nio.ByteBuffer#put() (CharBuffer, ShortBuffer, IntBuffer, LongBuffer, FloatBuffer 還有 DoubleBuffer)

參見上例。


3.工廠方法(Factory method) 

 java.util.Calendar#getInstance()

JDK 源碼 閱讀 - 2 - 設計模式 - 創建型模式

工廠方法的構造方法就在所要生成的類型上。 這個抽象工廠有很大不同。

其它的可參見:

 java.util.ResourceBundle#getBundle()

 java.text.NumberFormat#getInstance()

 java.nio.charset.Charset#forName()

 java.net.URLStreamHandlerFactory#createURLStreamHandler(String) 

4.原型模式(Prototye)

  • java.lang.Object#clone()


5.單例模式(Singleton) 

 java.lang.Runtime#getRuntime()

 java.awt.Desktop#getDesktop()




向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

杭州市| 沈丘县| 蒲江县| 怀宁县| 林口县| 保亭| 四会市| 东平县| 克什克腾旗| 乌兰察布市| 莲花县| 洛南县| 当涂县| 揭阳市| 阳城县| 胶州市| 聂荣县| 英吉沙县| 漳平市| 龙里县| 晴隆县| 海淀区| 东乌珠穆沁旗| 水城县| 嘉黎县| 德江县| 蒙自县| 九寨沟县| 绥阳县| 胶南市| 晋州市| 琼中| 洛川县| 荆州市| 多伦县| 玛纳斯县| 湘潭市| 肃南| 岳普湖县| 罗平县| 长垣县|