极客时间 - 架构训练营 第一周总结 - 设计原则
单一职责原则
一个类,一个接口,乃至一个方法,我们都应明确它的职能。不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,如若不然,就应该把类拆分。
里式替换原则(LSP)
在类中调用其他类时务必要使用父类或接口,如果不能使用父类或接口,则说明类的设计已经违背了LSP原则
有子类出现的地方,父类未必就可以代替(子类有自己的特性)
子类中方法的入参类型必须与父类中被覆写的方法的入参类型相同或更宽松
覆盖或实现父类的方法时,输出结果可以被缩小
接口隔离原则(ISP)
每个接口中不存在子类用不到却必须实现的方法,如果不然,就要将接口拆分。使用多个隔离的接口,比使用单个接口(多个接口方法集合到一个的接口)要好。
依赖倒置原则(DIP)
高层模块和底层模块的依赖都建立在抽象上
开/闭原则(OCP)
对软件实体的改动,最好用扩展而非修改的方式
设计原则举例:
某个功能的接口对外有两个职责,移动端调用、管理应用调用(ISP)
调度框架,基于调度框架暴露的接口进行实现,比如:schedulejob(DIP)
通过对子系统的划分、模块的划分、模块中接口的定义,来确定整个系统级的单一原则,当然这只是从逻辑视图来看。
评论