设计模式,面试速记手册1
设计模式本身都是一些最优经验的整合,包含了很多解决方案的最佳实践,是Java设计领域必须掌握和积累的重要知识点。互联网Java面试过中,设计模式是一个绕不开的热点问题,尤其是与Java相关的一些高端职位,比如架构师、技术专家等。因此我们有必要做一些准备。
设计模式速记手册,主要是针对面试,力求简洁明了,能回答出面试要点即可。
我们常说的设计模式,即Design pattern。一共有23种,分三大类:
1、创建型模式(5种):单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式。
2、结构型模式(7种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
3、行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
以上23种不需要全部掌握,但需要掌握每个大类里面的重点设计模式,我们接下来也主要讲下重点设计模式,即面试过程种出现频率最高的。
一、创建型模式
创建型包含5种设计模式,都是重点。
1、单例模式
单例模式就是全局只有一个实例的类,私有构造方法。掌握并会写她的三种重点实现:懒汉式、饿汉式、双检索。
2、工厂模式
工厂模式,可以理解为使用统一的接口来创建新的对象。因为是统一的接口,所以在创建对象的时候也避免了向客户端暴露创建逻辑。
3、抽象工厂模式
抽象工厂就是工厂的工厂,也可以理解为一个超级工厂。主要解决的是工厂的扩展性问题,无需改变工厂内部的实现,同一走接口即可。
4、建造者模式
建造者模式就是需要多个步骤来一步步构建成一个复杂的对象,强调的是对象的复杂性。这时候使用减少复杂性。Java中有一个典型的建造者模式实现,StringBuilder。
5、原型模式
原型模式,可以理解为以一个对象作为原型,使用clone()方法来创建新的实例。适用于直接创建对象的代价比较大时(比如需要频繁的操作库或者网络传输对象),这时候使用原型模式就降低了网络或内存的开销。
上面写了创建型模式,暂保存为速记手册1吧,夜深了,明天继续更新速记手册2。