模块之间的使用模式
模块开发目标:低耦合,高内聚
如何达到这目标?
由架构师定义好一整套可行的接口{具体如何达到,这个基本步骤书本或网络都有,主要要看架构师的功力}
根据自身多年开发项目,这里总结下。
说下模块的使用模式
模块A:函数/接口提供者
模块B:函数/接口使用者
应用程序C
1、调用模式
由模块A定义函数/接口,模块B直接引用调用函数/接口,应用程序C直接引用调用模块B
模块之间的使用是层次调用(就是说没有模块A的实现,模块B的调用肯定无效),其函数/接口的声明和实现均由低端处理
应用场景:分层开发大部分应用,比如DB层和业务逻辑层
注意:模块B可以调用多个模块,这里描述仅仅简化
2、委托模式
由模块B声明函数/接口,模版A为函数/接口实现,应用程序C引用模块A和模块B调用
模块之间的使用是可选调用(就是说模块B声明的函数/接口,实现与否都能正常执行),其函数/接口的声明由应用端声明,平行模块或低端模块或自身模块来实现
应用场景:通讯模块一般都需要委托数据处理模块帮其解析数据和分析数据,如果没有数据处理模块,它仍然能正常工作。
注意:函数/接口的实现可以平行模块、或底层模块、或自身模块;其使用均在程序应用层
两者最大区别:
后者即使没有实现协议,也能正常完成执行流程。
在实际项目中,常常由于没有架构师的处理,导致一些接口定义的工作和需求,往往不明显;
常出现的状况:模块A的开发人员定义的接口和模块B的开发人员想的接口不一样;还会出现模块之间的使用模式不定,往往是口头上说委托,而实际使用模式是调用。
培养一个常规的团队,这个很重要。
无论生活、还是技术,一切都不断的学习和更新~~~努力~