2020年,咱们已通过了5天,这样说来,春招的也快来了,之前总结了很多面试题分享给你们git
今天就给你们详细总结一下设计模式,春招可不能倒上面github
第一次看文章的朋友能够关注我,会不按期发布大厂面试题、Android架构技术知识点及解析等内容,还有学习PDF+源码笔记+面试文档+进阶视频分享面试
就一个类来讲,应该只有一个引发它变化的缘由设计模式
一个类作一件事情,避免职责过多。好比这种状况是不太好的,在一个Activity中既有bean文件,又有http请求,还有adapter等等,这就致使咱们须要修改任何一个东西的时候都会致使Activity的改变,这样一来就有多个引发它变化的缘由,不符合单一职责原则架构
类,模块,函数应该是能够扩展的,可是不能够修改ide
对于扩展是开放的,对于修改是封闭的。尽可能作到面对需求的改变时,咱们的代码能保持相对稳定,经过扩展的方式应对变化,而不是修改原有代码实现函数
全部引用基类的地方,必须能够透明的时候其子类的对象学习
里氏替换原则是实现开放封闭原则的重要方式之一,咱们知道,使用基类的地方均可以使用子类去实现,由于子类拥有基类的全部方法,因此在程序设计中尽可能使用基类类型对对象进行定义,在运行时肯定子类类型。设计
高层模块不该该依赖于底层模块,二者都应该依赖于抽象,抽象不该该依赖于细节,细节应该依赖于抽象代理
依赖倒置原则针对的是模块之间的依赖关系,高层模块指调用端,底层模块指具体的实现类,抽象指接口或抽象类,细节就是实现类。该原则的具体表现就是模块间的依赖经过抽象发生,直线类之间不发生直接依赖关系,依赖经过接口或抽象类产生,下降耦合,好比MVP模式下,View层和P层经过接口产生依赖关系
一个软件实体应该尽量少的与其余实体发生相互做用
迪米特原则要求咱们在设计系统时,尽可能减小对象之间的交互
一个类对另外一个类的依赖应该创建在最小的接口上
接口隔离原则的关键是接口以及这个接口要小,如何小呢,也就是咱们要为专门的类建立专门的接口,这个接口只对它有效,不要试图让一个接口一应俱全,要创建最小的依赖关系
固然想看以往总结的学习内容和面试文章能够看个人GitHub:https://github.com/Meng997998/AndroidJX
设计模式分为三类
####a.建立型设计模式
与对象建立有关包括单例模式,工厂方法模式,抽象工厂模式,建造者模式,原型模式
####b.结构型设计模式
结构性设计模式是从程序的结构上解决模块之间的耦合问题,包括适配器模式,代理模式,装饰模式,外观模式,桥接模式,组合模式和享元模式
####c.行为型设计模式
主要处理类或对象如何交互及如何分配职责,包括策略模式,模板方法模式,观察者模式,迭代器模式,责任链模式,命令模式,备忘录模式,状态模式,访问者模式,中介模式,解析器模式
关注我,会不按期发布大厂面试题、Android架构技术知识点及解析