面向接口编程
一般在实现一个系统的时候,通常是将定义与实现合为一体,不加分离的,我认为最为理解的系统设计规范应该是所有的定义与实现分离,尽管这对于系统中某些复杂的情况有些繁烦。
面向接口编程设计
使用面向接口编程思想将层与层之间通过接口依赖,下层不是直接给上层提供服务,而是定义一组接口供上层调用。至于具体的业务实现,是开发中需要做的事情,在项目架构阶段,只需要定义好层与层之间的接口依赖,将框架搭建起来,编译可以直接通过。
为什么要有面向接口编程设计?
为了提高架构的灵活性,降低层和层之间的依赖(耦合)
在一个系统框架中一个接口层可以根据不同的业务对应的有不同的实现层提供服务。
举个例子 多层架构中,前后端分离的情况下前端只做一些弱逻辑处理,表现层只控制网络请求的输入输出(通过IBLL接口和业务逻辑层依赖),业务逻辑层执行和处理强逻辑,对应不同的业务可以编写不同的服务(IBLL接口 提供Bll.pc或者Bll.mobile多套服务)供表现层调用,
数据持久化层一般只做一些原子性的操作
数据持久化层大部分使用关系型数据库,也有使用搜索引擎的还有文件系统,非关系型数据库的