中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

黔东| 顺平县| 江油市| 甘泉县| 灌阳县| 安国市| 富宁县| 兴化市| 三都| 潜江市| 疏勒县| 乐安县| 和政县| 五河县| 邻水| 江川县| 元阳县| 滦南县| 松滋市| 盐边县| 萨迦县| 阿坝| 曲松县| 靖州| 彩票| 澎湖县| 祁连县| 旺苍县| 卫辉市| 内乡县| 尚义县| 思南县| 金川县| 南汇区| 马尔康县| 涟水县| 孝昌县| 额济纳旗| 浏阳市| 榆林市| 故城县|