原创 創建型設計模式 之 三種工廠模式區別

1定義 工廠模式(Factory Pattern)屬於創建型設計模式。如其名它提供了一種像實際場景中像加工廠的形式來進行創建類對象,其過程不會對客戶端暴露創建邏輯,並且是通過使用共同的接口來返回新創建的對象。一般工廠模式雙可分爲簡單工廠模

原创 創建型設計模式 之 簡化版和傳統版的建造者模式

1 定義 建造者模式(Builder Pattern)屬於創建型設計模式。又有人稱爲創建者模式、生成器模式、構造器模式等,它主要用於複雜對象的創建。那什麼是複雜對象呢?其實簡單地說就是類中構造方法有多個重載的版本和最終構造方法參數特別多的

原创 創建型設計模式 之 深拷貝的原型模式

1 定義 原型模式(Prototype Pattern)屬於創建型設計模式之一,它主要用於當直接創建對象的代價較大時對已有對象進行克隆從而節約性能成本。例如一個對象需要高代價的IO或訪問數據庫之後才能被創建出來,像這情況類初始化需要消化非

原创 創建型設計模式 之 正確使用單例模式

1定義 單例模式(Singleton Pattern)屬於創建型設計模式之一,它應該算上是我們日常開發裏最常用到的設計模式之一。其使用上就是讓在當前進程下指定的類只被初始化一次,並且一般會一直保存於內存中,保證了全局對象的唯一性。比如線程

原创 Android網絡編程(十) 之 OkHttp3原理分析

1 使用回顧 我們在前面博文《Android網絡編程(九) 之 OkHttp3框架的使用》中已經對OkHttp的使用進行過介紹。今天我們接着往下來閱讀OkHttp的關鍵源碼從而它進行更加深入的理解。開始前,先來回顧一下簡單的使用,通過使用

原创 Android開發者快速上手Kotlin(六) 之 協程上下文和攔截器

接《Android開發者快速上手Kotlin(五) 之 協程語法初步》文章繼續。 13 協程上下文和攔截器 我們在完成了上一篇文章的學習後,你是不是已經大概清楚協程是什麼和怎樣使用了。但是你可能還存在着疑惑,既然協程沒有異常的能力,使用過

原创 Android網絡編程(七) 之 Volley原理分析

1 前言 Volley是Goole在2013年Google I/O大會上推出的開源網絡通信框架。Volley 的特點是使用簡單而且適合數據量小,通信頻繁的網絡操作,而對於大數據量的網絡操作,比如說下載文件等,它的表現就會非常糟糕,因爲Vo

原创 Android網絡編程(十三) 之 Socket和長連接

1 Socket的簡介 Socket字面翻譯是“插座”,通常也稱作“套接字”,是對TCP/IP的封裝的編程接口。Socket把複雜的TCP/IP 協議族隱藏在Socket 接口後面。Socket 用於描述IP地址和端口,是一個通信鏈的句柄

原创 Android網絡編程(三) 之 網絡請求握手過程

1 一次網絡請求的過程 我們平常在瀏覽器輸入一個網址回車後經過了大概不到一秒時間的網絡請求便可展示出相應的頁面,其實這樣一次完整的網絡請求過程要經過好幾個步驟: 第一步:DNS解析IP地址; 第二步:TCP三次握手建立連接; 第三步:如果

原创 Android網絡編程(九) 之 OkHttp3框架的使用

1 簡介 OkHttp是一個用於Android網絡請求的第三方開源的輕量級框架。該框架由移動支付Square公司貢獻,其優勢有支持HTTP/2,允許連接到同一個主機地址的所有請求共享一個Socket連接;若HTTP/2不可用情況下,還可通

原创 Android網絡編程(八) 之 HttpURLConnection原理分析

1 使用回顧 我們在前面博文《Android網絡編程(四) 之 HttpClient與HttpURLConnection》中已經對HttpURLConnection的使用進行過介紹。今天我們接着往下來閱讀HttpURLConnection

原创 Android網絡編程(四) 之 HttpClient與HttpURLConnection

Android本身提供了Apache 的 HttpClient 和 Java 的HttpURLConnection來進行網絡請求通信。它們都支持以流的方式進行網絡通信,並且都支持https。 1 HttpClient HttpClient

原创 Android網絡編程(十二) 之 Retrofit2原理分析

1 使用回顧 我們在前面博文《Android網絡編程(十一) 之 Retrofit2框架的使用》中已經對Retrofit的使用進行過介紹。今天我們接着往下來閱讀Retrofit的關鍵源碼從而它進行更加深入的理解。開始前,先來回顧一下簡單的

原创 Android網絡編程(六) 之 Volley實戰,上傳文件到騰訊雲

我們在上一博文《Android網絡編程(五) 之 Volley框架的使用》中簡單介紹了利用Volley進行網絡請求的GET和POST的基本使用。今天我們進一步探討怎樣使用Volley來進行文件的上傳。 1 表單結構 文件上傳其實就是進行表

原创 Android網絡編程(十一) 之 Retrofit2框架的使用

1 簡介 Retrofit是Square公司開發的Android裏對HTTP網絡請求的框架,官網是https://square.github.io/retrofit/。其底層是基於OkHttp實現的,也就是說Retrofit就對OkHtt