原创 【Android - 進階】之圖片壓縮

        很多時候,如果APP需要下載和加載很多圖片(尤其是大圖片)的時候,就往往會報如下圖所示的錯誤:         如上圖所示,OOM(OutOfMemoryError)表示內存溢出,這是因爲網絡或內存中的圖片被加載成Bit

原创 【設計模式 - 4】之原型模式(Prototype)

1      模式簡介 原型模式的定義:通過複製一個現有的對象(原型)來得到一個相似的對象。   原型模式的UML圖如下圖所示: 從上圖中可以看到,所有的對象實體類都是繼承自一個Prototype的父類,而prototype類有一個

原创 【設計模式 - 3】之建造者模式(Builder)

1      模式簡介 建造者模式也叫生成器模式,和抽象工廠模式相似,也是一種構建複雜對象的模式。   建造者模式中的角色分類: l  抽象建造者Builder:接口類型,用於規範各個產品的組成部分; l  具體建造者ConcreteBu

原创 【設計模式 - 1】之工廠模式(Factory)

1      模式簡介 1.1    工廠模式作用 l  工廠模式解決的是“使用new關鍵字獲取對象造成松耦合”的問題。 l  工廠模式主要是爲創建對象提供過渡接口,以便將創建對象的具體過程屏蔽隔離起來,達到提高靈活性的目的。   1.2

原创 【JAVA - SSM】之SSM入門項目的搭建

        最近學習了一下SSM。SSM是 Spring + SpringMVC + MyBatis 整合框架,非常適合WEB後臺開發,也是當前很多人的不二選擇。這篇博客帶大家來創建一個學習SSM的入門程序,從搭建框架開始,到實現一個

原创 【設計模式 - 14】之命令模式(Command)

1      模式簡介 命令模式的定義: 命令模式將命令封裝成對象,從而使調用一個命令變爲調用一個對象的指定方法。   命令模式的優點: 1)        降低了系統耦合度; 2)        新的命令可以很容易的添加到系統中去。  

原创 【設計模式 - 17】之中介者模式(Mediator)

1      模式簡介 中介者模式的定義: 用一箇中介者對象封裝一系列的對象交互,中介者使各對象不需要顯式地相互作用,從而使耦合鬆散,而且可以獨立地改變它們之間的交互。   中介者模式中的組成部分: 1.        同事類:如果兩個類

原创 【設計模式 - 6】之橋接模式(Bridge)

1      模式簡介 舉個例子,人、車和公路是三個維度,人開着車在公路上行駛,就是將這三個維度進行了關聯。人分男人(Man)和女人(Woman),車分小轎車(Car)和公共汽車(Bus),公路分市區公路(Street)和高速公路(Sp

原创 【設計模式 - 13】之責任鏈模式(Chain Of Responsibility)

1      模式簡介 責任鏈模式的簡介: 1.        責任鏈模式爲請求創建了一個接收者對象的鏈,每個接收者都包含對另一個接收者的引用,如果一個對象不能處理該請求,那麼它會把相同的請求傳給下一個接收者,依此類推。 2.      

原创 【設計模式 - 2】之單例模式(Singleton)

1      模式簡介 單例模式在代碼中是非常常用的,如線程池、數據庫連接、註冊表、共享資源、一些非常消耗資源的組件,等等。   單例模式主要解決如下問題: l  確保一個特殊類的實例是獨一無二的; l  確保這個類的實例非常容易訪問(提

原创 【設計模式 - 5】之適配器模式(Adapter)

1      模式簡介 適配器模式解決的問題:讓原本因爲接口不兼容而不能一起工作的類可以一起工作。   適配器模式的UML原理圖如下圖所示: 從上圖可見,客戶想要用Target接口實現Adaptee接口中的方法,但這顯然是不可能的。

原创 【設計模式 - 15】之解釋器模式(Interpreter)

1      模式簡介 解釋器模式允許我們自定義一種語言,並定義一個這種語言的解釋器,這個解釋器用來解釋語言中的句子。由於這種模式主要用於編譯器的編寫,因此在日常應用中不是很常用。   如果一種特定類型的問題發生頻率足夠高,那麼可能就值得

原创 【Android - 框架】之刷新加載框架Ultra-Pull-To-Refresh的使用

        Ultra-Pull-To-Refresh框架是用來嵌套其他佈局,實現下拉刷新和上拉加載的框架。它其中可以嵌套任何控件,ListView、GridView、ScrollView、RecyclerView,甚至TextVie

原创 【Android - 框架】之可懸浮列表StickyHeadersRecyclerView

        這是timehop的GitHub上發表的一個控件框架,大家可以去參考它的【GitHub】。         這裏先貼出GitHub上提供的效果圖:         要使用這個框架,我們需要首先導入它的依賴: compil

原创 【設計模式 - 12】之代理模式(Proxy)

1      模式簡介 1.1    定義 爲其他對象提供一種代理以控制對這個對象的訪問。代理對象起到中介作用,可以去掉功能服務或增加額外服務。   1.2    常見的代理模式 1)        遠程代理:可以隱藏一個對象存在於不同控