一. 设计模式种类:
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