6客燕、設(shè)計模式

Q:談?wù)凪VC、MVP和MVVM婚瓜,好在哪里宝鼓,不好在哪里?

http://www.reibang.com/writer#/notebooks/6230737/notes/51671900

Q:如何理解生產(chǎn)者消費者模型巴刻?

https://blog.csdn.net/wsq119/article/details/82526449
http://www.reibang.com/p/678be034abe2

技術(shù)點:生產(chǎn)者消費者模型
參考回答:生產(chǎn)者消費者模型通過一個緩存隊列愚铡,既解決了生產(chǎn)者和消費者之間強耦合的問題,又平衡了生產(chǎn)者和消費者的處理能力胡陪。
具體規(guī)則:生產(chǎn)者只在緩存區(qū)未滿時進行生產(chǎn)沥寥,緩存區(qū)滿時生產(chǎn)者進程被阻塞;消費者只在緩存區(qū)非空時進行消費柠座,緩存區(qū)為空時消費者進程被阻塞邑雅;當(dāng)消費者發(fā)現(xiàn)緩存區(qū)為空時會通知生產(chǎn)者生產(chǎn);當(dāng)生產(chǎn)者發(fā)現(xiàn)緩存區(qū)滿時會通知消費者消費妈经。
實現(xiàn)關(guān)鍵:synchronized保證對象只能被一個線程占用淮野;wait()讓當(dāng)前線程進入等待狀態(tài)捧书,并釋放它所持有的鎖;notify()&notifyAll()喚醒一個(所有)正處于等待狀態(tài)的線程

Q:是否能從Android中舉幾個例子說說用到了什么設(shè)計模式骤星?

View事件分發(fā):責(zé)任鏈模式
BitmapFactory加載圖片:工廠模式
Adapter:適配器模式
Builder:建造者模式
Adapter.notifyDataSetChanged():觀察者模式
Binder機制:代理模式

Q:裝飾模式和代理模式有哪些區(qū)別经瓷?

https://www.cnblogs.com/yanggb/p/10952843.html
https://www.cnblogs.com/doucheyard/p/5737366.html

使用目的不同:代理模式是給目標(biāo)對象提供一個代理對象,并由代理對象控制對目標(biāo)對象的引用洞难;裝飾模式是在不必改變原類文件和使用繼承的情況下舆吮,動態(tài)地擴展一個對象的功能
構(gòu)造不同:代理模式內(nèi)部保持對目標(biāo)對象的引用;裝飾模式是通過構(gòu)造函數(shù)傳參的方式得到目標(biāo)對象

Q:實現(xiàn)單例模式有幾種方法廊营?懶漢式中雙層鎖的目的是什么歪泳?兩次判空的目的又是什么?

實現(xiàn)單例模式常見的兩種方式:
(1)懶漢式:延遲加載露筒,同時也要保證多線程環(huán)境下會產(chǎn)生多個single對象(DCL)

public class Singleton {

    private Singleton() {}
    private volatile static Singleton instance;//第一層鎖:保證變量可見性

    public static Singleton getInstance() {
        if (single == null) {//第一次判空:無需每次都加鎖,提高性能
            synchronized (Singleton.class) {//第二層鎖:保證線程同步
                if (single == null) {//第二次判空:避免多線程同時執(zhí)行g(shù)etInstance()產(chǎn)生多個single對象
                    single = new Singleton();
                }
            }
        }
        return single;
    }
}

餓漢式:在類加載初始化時就創(chuàng)建好一個靜態(tài)的對象供外部使用

public class Singleton {

    private Singleton() {}
    private static Singleton single = new Singleton();

    public static Singleton getInstance() {
        return single;
    }
}
Q:談?wù)劻私獾脑O(shè)計模式原則敌卓?

https://www.cnblogs.com/xiaobaizhang/p/7778494.html

單一職責(zé)原則:一個類只負責(zé)一個功能領(lǐng)域中的相應(yīng)職責(zé)
開放封閉原則:對擴展開放慎式,對修改關(guān)閉
依賴倒置原則:抽象不應(yīng)該依賴于細節(jié),細節(jié)應(yīng)當(dāng)依賴于抽象趟径。換言之瘪吏,要針對接口編程,而不是針對實現(xiàn)編程
迪米特法則:應(yīng)該盡量減少對象之間的交互蜗巧,如果兩個對象之間不必彼此直接通信掌眠,那么這兩個對象就不應(yīng)當(dāng)發(fā)生任何直接的相互作用,如果其中的一個對象需要調(diào)用另一個對象的某一個方法的話幕屹,可以通過第三者轉(zhuǎn)發(fā)這個調(diào)用
合成/聚合復(fù)用原則:要盡量使用合成/聚合蓝丙,盡量不要使用繼承

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市望拖,隨后出現(xiàn)的幾起案子渺尘,更是在濱河造成了極大的恐慌,老刑警劉巖说敏,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸥跟,死亡現(xiàn)場離奇詭異,居然都是意外死亡盔沫,警方通過查閱死者的電腦和手機医咨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來架诞,“玉大人拟淮,你說我怎么就攤上這事〕薮” “怎么了惩歉?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵等脂,是天一觀的道長。 經(jīng)常有香客問我撑蚌,道長上遥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任争涌,我火速辦了婚禮粉楚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘亮垫。我一直安慰自己模软,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布饮潦。 她就那樣靜靜地躺著燃异,像睡著了一般。 火紅的嫁衣襯著肌膚如雪继蜡。 梳的紋絲不亂的頭發(fā)上回俐,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天,我揣著相機與錄音稀并,去河邊找鬼仅颇。 笑死,一個胖子當(dāng)著我的面吹牛碘举,可吹牛的內(nèi)容都是我干的忘瓦。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼引颈,長吁一口氣:“原來是場噩夢啊……” “哼耕皮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起线欲,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤明场,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后李丰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體苦锨,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年趴泌,在試婚紗的時候發(fā)現(xiàn)自己被綠了舟舒。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡嗜憔,死狀恐怖秃励,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吉捶,我是刑警寧澤夺鲜,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布皆尔,位于F島的核電站,受9級特大地震影響币励,放射性物質(zhì)發(fā)生泄漏慷蠕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一食呻、第九天 我趴在偏房一處隱蔽的房頂上張望流炕。 院中可真熱鬧,春花似錦仅胞、人聲如沸每辟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽渠欺。三九已至,卻和暖如春莱革,著一層夾襖步出監(jiān)牢的瞬間峻堰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工盅视, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人旦万。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓闹击,卻偏偏與公主長得像,于是被迫代替她去往敵國和親成艘。 傳聞我的和親對象是個殘疾皇子赏半,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 三、高級開發(fā)技術(shù)面試題 這里講的是大公司需要用到的一些高端Android技術(shù)淆两,這里專門整理了一個文檔断箫,希望大家都可...
    上善若水0819閱讀 26,295評論 0 47
  • 1. HashMap原理 jdk8后采用數(shù)組+鏈表+紅黑樹的數(shù)據(jù)結(jié)構(gòu),利用元素的key的hash值對數(shù)組長度取模得...
    谷哥得小弟閱讀 868評論 0 0
  • 1.java基本數(shù)據(jù)類型 java一共8個基本數(shù)據(jù)類型 byte 1字節(jié)(1byte = 8 bit)sh...
    陽_young閱讀 2,112評論 3 20
  • 一、多線程 說明下線程的狀態(tài) java中的線程一共有 5 種狀態(tài)秋冰。 NEW:這種情況指的是仲义,通過 New 關(guān)鍵字創(chuàng)...
    Java旅行者閱讀 4,659評論 0 44
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險厭惡者,不喜歡去冒險剑勾,但是人生放棄了冒險埃撵,也就放棄了無數(shù)的可能。 ...
    yichen大刀閱讀 6,033評論 0 4