原创 門面模式,產品經理

一個初創的團隊只有一個後臺,一個網頁前端,一個美工。老闆要做一個分享頁面,他要分別告訴後臺加個鏈接,告訴美工抓緊設計頁面,告訴前端要加酷炫的特效,整

原创 模板模式,程序員的一天

        首先簡單描述一下我工作(Android程序員)的一天,7點起牀洗漱,9點打卡上班,上午寫Android代碼,12點喫午餐,下午1點到6點寫Android代碼,6點下班,如果需求緊急就要加班到晚上八點。接下來我描述一下我同事

原创 訪問者模式,記者街訪

一位記者做街頭訪問的節目並贈送禮物,如果採訪的是女性送一朵玫瑰花男的送一隻鋼筆。 戰爭是男人的事讓女人走開。 模式定義:訪問者模式即表示一個作用於某對象結構中的各元素的操作,它使我們可以在不改變各元素的類的前提下定義作用於這些元素的新操

原创 可以設置過期時間的Java緩存ExpiringMap

功能簡介 : 1.可設置Map中的Entry在一段時間後自動過期。 2.可設置Map最大容納值,當到達Maximum size後,再次插入值會導致Map中的第一個值過期。 3.可添加監聽事件,在監聽到Entry過期時調度監聽函數。 4.

原创 android重試執行

在android開發中如果執行某個操作沒有成功,最多重試執行10次,每次間隔1秒(UI線程需要注意間隔時間不要超過5秒否則會報ARN),如何實現?最近在瞭解CarService代碼發現了一段很好用的代碼,分享一下: import

原创 建造者模式,煎餅果子

大家有沒有吃過煎餅果子?味道超讚還可以根據自己的喜好讓老闆加雞蛋、加生菜、加里脊、加火腿、加辣椒等。 模式定義:將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。 案例分析:老闆就是煎餅果子的建造者,只要告訴老闆

原创 剪不斷,理還亂的對象關係

前言: 關係是指人與人之間,人與事物之間,事物與事物之間的相互聯繫。事物的存在不是孤立的,事物的存在是各種關係發生作用的結果,事物正是通過和別的事物發生作用而發展自己,實現自己的價值。情景:今天早上我坐公交去公司上班。平時都是蹭同事小強的

原创 裝飾者模式,天冷多穿點

冬天去上班,早上出門的時候如果天冷了我會加件毛衣,如果起風了加件外套。模式定義:動態的給一個對象添加一些額外的職責。案例分析:天氣好只穿工作服去上班,天冷加件毛衣,有風加件外套。優點:在不必改變原類文件和使用繼承的情況下,動態地擴展一個對

原创 設計,爲了更好的應對變化

什麼是設計模式?  1.是解決某些問題的辦法  2.不是憑空想象的,是經驗的積累和總結 不可預測的變化。    產品的上線只是第一步,維護和拓展才是我們花很長時間去做的。   1.當前期設計不合理,後期維護出現重大問題如何處理?立即修復

原创 狀態模式,運動員比賽

馬拉松運動員的競技狀態直接影響着比賽過程和結果。     超常發揮時,速度爲每小時21公里;     正常發揮時,速度爲每小時20公里;     失常發揮時,速度爲每小時18公里。 馬拉松比賽過程大約2小時,運動員不可能保持同一狀態,所以

原创 Launcher3源碼解析

由於工作的原因,開始了Launcher的學習和開發。我拿到的源碼是Android N 的Launcher3的源碼。想的是一步一步對Launcher3的源碼進行分析並記錄,也是爲了讓自己遺忘的時候可以看看。 下面正式開始Launcher3的

原创 工作總結及建議

1.先需求評審,讓相關人員瞭解自己的需求,和誰配合,有問題及時反饋,產品好及時調整方案。2.只認文檔不認人。一個成功的項目不在於它帶來了多少價值,而在於任何人的離職請假都不影響項目的正常運作。如何做到,寫好

原创 理財,預期收益

項目中,標的付款方式有,到期本息 、先息後本、等額本息、等額本金四種。這就意味着客戶端在計算預期收益時要根據這一狀態執行不同的算法。通過分析,到期本息 、先息後本爲第一種算法,等額本息爲第二種算法,等額本金

原创 一個Key對應多個Value

Map 一個key對應一個value,它可以滿足大部分需求。但有時我要用到一個key對應多個value怎麼辦?1.普通做法  Map<Object,List<Object>> map=new HashMap<>();2.apache co

原创 面向切面編程(aop),實現Android網絡請求

        在項目中使用了百度語音功能打開sdk發現了一個面向切面的支持包(aop)。由於代碼被混淆過看起來着實痛苦,通過大膽猜測和驗證終於將代碼復原併爲我所用。aop的代碼思路是通過反射執行代理對象已註冊的方法,在方法前遍歷所有的攔