国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

設計模式在jdk中的應用

dingding199389 / 1758人閱讀

摘要:本文只是尋找設計模式在中的應用。來補全這一塊工廠模式中的應用包線程池解釋和代碼線程池中有線程創建工廠。狀態模式中的應用解釋和代碼根據一個指針的狀態而改變自己的行為適配器模式中的應用解釋和代碼將一個類的接口轉換成客戶希望的另外一個接口。

前言

最近重學設計模式,而且還有很多源碼要看。所以就想一舉兩得。從源碼中尋找設計模式。順便還可以看看源碼。。。
本文只是尋找設計模式在java中的應用。優缺點就不細說了。而且也不可能將jdk中所有涉及設計模式的例子都舉出來。希望大家積極評論。來補全這一塊

工廠模式 jdk中的應用

java.sql包
線程池

解釋和代碼

線程池中有線程創建工廠。應用了工廠模式

策略模式 jdk中的應用

JAVA AWT 中的 LayoutManager
Comparator

解釋和代碼

在集合元素的比較中,可以傳入一個comparer。不同的comparer有不同的比較策略

裝飾者模式 jdk中的應用

java.io包

解釋和代碼

裝飾者模式可以動態地給一個對象增加其他職責,就擴展對象功能來說,裝飾者模式比生成子類更為靈活。在由InputStream,OutputStream,Reader和Writer代表的等級結構內部,有一些流處理器可以對另一些流處理器起到裝飾作用,形成新的,具有改善了的功能的流處理器。

代理模式 jdk中的應用

jdk中的Proxy類

解釋和代碼

Proxy類可以動態代理生成代理對象

原型模式 jdk中的應用

java的clone方法

解釋和代碼

原型模式(Prototype Pattern)是用于創建重復的對象,同時又能保證性能
clone是基于內存級別的復制。不是用構造方法。創建重復對象性能更高

模板模式 jdk中的應用

java.io.InputStream, java.io.OutputStream, java.io.Reader和java.io.Writer的所有非抽象方法
java.util.AbstractList, java.util.AbstractSet和java.util.AbstractMap的所有非抽象方法

解釋和代碼

父類實現關鍵步驟,子類實現了具體步驟

外觀模式 jdk中的應用

java.lang.Class
java的三層開發模式

解釋和代碼

Class.forName方法生成一個Class對象。作為對對象操作的總入口。

建造者模式 jdk中的應用

java.lang.StringBuilder
java.lang.StringBuffer

解釋和代碼

StringBuilder和Stringbuffer可以擴展原對象不同的字符串也可以按不同的順序拼接

觀察者模式 jdk中的應用

java.util.Observer接口

解釋和代碼

這個接口好像我平時開發沒用到。他的所有實現類都是在sun包的。

狀態模式 jdk中的應用

java.util.Iterator

解釋和代碼

根據一個指針的狀態而改變自己的行為

適配器模式 jdk中的應用

java.util.Arrays.asList()
java.io.InputStreamReader(InputStream)

解釋和代碼

將一個類的接口轉換成客戶希望的另外一個接口。適配器模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。
Arrays將集合轉換為list。Inputstream轉換成reader

備忘錄模式 jdk中的應用 解釋和代碼 組合模式 jdk中的應用

java.util.Map#putAll(Map)
java.util.List#addAll(Collection)
java.util.Set#addAll

解釋和代碼

組合模式用于把一組相似的對象當作一個單一的對象。和對象組合成集合一致

迭代器模式 jdk中的應用

java.util.Iterator
java.util.Enumeration

解釋和代碼

提供一個一致的方法來順序訪問集合中的對象,這個方法與底層的集合的具體實現無關。

單例模式 jdk中的應用

java.lang.Runtime
。。。。

解釋和代碼
private static Runtime currentRuntime = new Runtime();  
public static Runtime getRuntime() {  
    return currentRuntime;  
橋接模式 jdk中的應用

java.sql.DrivenManager

解釋和代碼


通過上圖可以看出,基于JDBC的應用程序,使用JDBC的API,相當于是對數據庫操作的抽象的擴展,算作橋接模式的抽象部分;而具體的接口實現是由驅動來完成的,驅動這邊自然就相當于橋接模式的實現部分了。而橋接的方式,不再是讓抽象部分持有實現部分,而是采用了類似于工廠的做法,通過DriverManager來把抽象部分和實現部分對接起來,從而實現抽象部分和實現部分解耦

命令模式 jdk中的應用

java.lang.Runable和線程池

解釋和代碼

Runnable:任務抽象,也就是“命令”;線程池通過submit,execute調用

職責鏈模式 jdk中的應用

jsp servlet 的 Filter

解釋和代碼

多個過濾器過濾,滿足條件則跳轉入下一個過濾器

中介者模式 jdk中的應用

線程池的executer.execute方法
我覺得mvc模式可能更好理解

解釋和代碼

Controller作為view和model的中介。使model和view透明化轉換

享元模式 jdk中的應用

java.lang.String

解釋和代碼

享元模式嘗試重用現有的同類對象,如果未找到匹配的對象,則創建新對象。String的常量池正是如此

解釋器模式 jdk中的應用

java.util.Pattern
java.text.Normalizer
java.text.Format

解釋和代碼

這個模式通常定義了一個語言的語法,然后解析相應語法的語句。簡單地說就是規定了格式

訪問者模式 jdk中的應用

javax.lang.model.element.AnnotationValue和AnnotationValueVisitor
javax.lang.model.element.Element和ElementVisitor
javax.lang.model.type.TypeMirror和TypeVisitor

解釋和代碼

好像都沒用過。。。。以后補上

空對象模式 jdk中的應用

java.util.Collections#emptyList()
java.util.Collections#emptyMap()
java.util.Collections#emptySet()

解釋和代碼

一個空對象取代 NULL

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71315.html

相關文章

  • 一篇文章了解新發布的Java JDK 11

    摘要:到年將提供修復和安全更新。中期版本將每六個月發布一次。將擴展類文件格式以支持新的常量池形式。將提供一個低開銷的數據收集框架,用于對應用程序和進行故障排除。項目負責人表示,維護成本和低使用率并不能證明其保留是合理的。將是第一個獲得支持的平臺。 Java JDK 11刪除了CORBA,Java EE和JavaFX支持,但添加了十幾個主要新功能。 Java Development Kit(J...

    Ethan815 評論0 收藏0
  • JDK11新增HttpClient談談非阻塞模型

    摘要:是一個倡議,它提倡提供一種帶有非阻塞背壓的異步流處理的標準。是標準的實現之一。的實現細節請求響應的與請求響應的暴露為是請求的的消費者是響應的的生產者內部的內部 北京時間 9 月 26 日,Oracle 官方宣布 Java 11 正式發布 一、JDK HTTP Client介紹 JDK11中的17個新特性 showImg(https://segmentfault.com/img/remo...

    pingan8787 評論0 收藏0
  • Java編程中那些再熟悉不過的知識點(持續更新)

    摘要:語言通過字節碼的方式,在一定程度上解決了傳統解釋型語言執行效率低的問題,同時又保留了解釋型語言可移植的特點。有針對不同系統的特定實現,,,目的是使用相同的字節碼,它們都會給出相同的結果。項目主要基于捐贈的源代碼。 本文來自于我的慕課網手記:Java編程中那些再熟悉不過的知識點,轉載請保留鏈接 ;) 1. 面向對象和面向過程的區別 面向過程 優點: 性能比面向對象高。因為類調用時需要實例...

    taowen 評論0 收藏0
  • 54個JAVA官方文檔重要術語

    摘要:近期在閱讀最新幾版的官方文檔過程中發現不少術語不清之處特發此文總結以下的術語大量在官方文檔中直接出現且直接如基本詞語一樣使用不理解它們會嚴重影響閱讀自適應自旋鎖自適應自旋鎖是一個允許線程在特定點自旋等待特定事件發生而不是直接進行并等待該事件 近期在閱讀JAVA最新幾版的官方文檔過程中發現不少術語不清之處,特發此文總結.以下的術語大量在官方文檔中直接出現,且直接如基本詞語一樣使用,不理解...

    longmon 評論0 收藏0
  • 吃透這套Java面試題,拿offer成功率再翻一番

    摘要:語言通過字節碼的方式,在一定程度上解決了傳統解釋型語言執行效率低的問題,同時又保留了解釋型語言可移植的特點。有針對不同系統的特定實現,,,目的是使用相同的字節碼,它們都會給出相同的結果。 showImg(https://segmentfault.com/img/bVbsjCK?w=800&h=450); 一、面向對象和面向過程的區別 面向過程優點: 性能比面向對象高,因為類調用時需要實...

    elva 評論0 收藏0

發表評論

0條評論

dingding199389

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<