一. 設計模式種類:
1. 概括:總體來說設計模式分爲三大類:
創建型模式(五種):工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
結構型模式(七種):適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式;
行爲型模式(十一種):策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式。
參閱資料:http://zz563143188.iteye.com/blog/1847029
2. 單例模式與類中只有靜態方法的類在設計角度有什麼差別?
單例模式可以充分使用面向對象的封裝/繼承/多態(比如創建多種構造函數);也適用於面向對象思維(比如返回對象爲單例類對象,而非靜態方法中的string、int等類型);
而一個類所有靜態方法不行,在設計角度遠不如單態設計靈活;
3. 狀態模式和策略模式的區別:
策略的改變由Client完成;而狀態的改變,由Context或狀態自己。在狀態模式中,每個狀態通過持有Context的引用,來實現狀態轉移;但是每個策略都不持有Context的引用,它們只是被Context使用。
一些常見的策略模式的例子是封裝算法,例如排序算法,加密算法或者壓縮算法。如果你看到你的代碼需要使用不同類型的相關算法,那麼考慮使用策略模式吧。而識別何時使用狀態模式是很簡單的:如果你需要管理狀態和狀態轉移,但不想使用大量嵌套的條件語句,那麼就是它了
4. 抽象工廠模式和工廠方法模式區別:
參閱 https://blog.csdn.net/liu88010988/article/details/50799902
二.string.intern簡介
參閱 https://www.cnblogs.com/dreamroute/p/3650399.html
三. 一致性哈希算法
參閱 https://blog.csdn.net/u013851082/article/details/68063446
四. dubbo負載均衡和容錯
參閱 http://www.cnblogs.com/juncaoit/p/7691411.html
五. zk選舉
參閱 https://www.jianshu.com/p/c2ced54736aa