百度做网站需要多少钱,企业网站的建立标准,京广桥做网站的公司,c语言开发环境关于依赖倒转原则#xff0c;对应的是两条非常抽象的描述#xff1a; 1.高层模块不应该依赖低层模块#xff0c;两个都应该依赖抽象。 2.抽象不应该依赖细节#xff0c;细节应该依赖抽象。
先用人话解释一下这两句话中的一些抽象概念#xff1a; 1.高层模块#xff1a;可…关于依赖倒转原则对应的是两条非常抽象的描述 1.高层模块不应该依赖低层模块两个都应该依赖抽象。 2.抽象不应该依赖细节细节应该依赖抽象。
先用人话解释一下这两句话中的一些抽象概念 1.高层模块可以理解为上层应用就是业务层的实现 2.低层模块可以理解为底层接口比如封装好的API、动态库等 3.抽象指的就是抽象类或者接口在C中没有接口只有抽象类 先举一个高层模块依赖低层模块的例子 大聪明的项目组接了一个新项目低层使用的是MySql的数据库接口高层基于这套接口对数据库表进行了添删查改实现了对业务层数据的处理。而后由于某些原因要存储到数据库的数据量暴增所以更换了Oracle数据库由于低层的数据库接口变了高层代码的数据库操作部分是直接调用了低层的接口因此也需要进行对应的修改无法实现对高层代码的直接复用大聪明欲哭无泪。 我们可以设计一个抽象类一个子类用作MySql接口另一个子类用作Oracle接口。 抽象类中提供的接口是固定不变的底层模块是抽象类的子类继承了抽象类的接口并且可以重写这些接口的行为高层模块想要实现某些功能调用的是抽象类的函数接口并且是通过抽象类的父类指针引用其子类的实例对象用子类类型替换父类类型这样就实现了多态。 基于依赖倒转原则将项目的结构换成上图的这种模式之后低层模块发生变化对应高层模块是没有任何影响的这样程序猿的工作量降低了代码也更容易维护说白了依赖倒转原则就是对多态的典型应用。
里式转换原则
所谓里式转换原则就是子类必须能够替换掉他们的父类类型。比如父类定义一个人的类型会飞会游泳身高180cm那么子类就不能是武大郎土行孙因为身高不满足。