学习笔记1

模块

模块可以当作一个业务。同理业务可以当作一个模块。当某个模块在项目中运行时,它必然是可以在其他地方以相同的数据格式,来运行该业务(模块)。

下面举例:

假设有两个模块,ModuleA和ModuleB,服务中心ModuleC

问题:A要从B中获取想要的数据,如某个列表数据

方案一:A直接访问列表接口,从服务器端获取

方案二:A通过B访问完数据,从B拿到数据

方案三:B对外开放接口,根据C的规范提供给C,A想要什么数据根据C的规范从C获取

对比方案:

方案一:如果接口有改动,A和B都必须跟着改动

方案二:如果接口改动,B改动,A在B处获取数据的方法还有数据结构可能会发生改变,需要改动

方案三:如果接口改动,B改动,但是提供给C的数据,还是必须按照之前约定的方式去提供,所有C和A都不需要改动

所以,得出结论:方案三最优,可以实现模块的任意变动不会影响到例外的模块。耦合性大大降低。

所以模块化开发交互最重要的就是服务中心。

从中可以了解到,假如我们都设计了ModeluA、ModeluB以及ModeluC。我可把任何一个模块从中脱离其项目中去单独的运行,为另外一个项目做底层的数据支撑。

这样在往后中搭建新的项目环境时,直接采用相应的软件配置好环境,套用模块。来迅速的为项目配置底层代码。 yum

python
118 views
Comments
登录后评论
Sign In
·

所以,得出结论:方案三最优这里不够严谨,在不用改动A或C代码上看确实不错,但是如果B改动过大,需要费很大代价转化为C再给A调用的话,不如直接B给A调用,直接改一下A的代码就好了

不过我觉得你这个例子很奇怪,C的身份更像是一个虚基类或接口,然后B或B1或B2是不同的实现,A调用C暴露的方法,这不像是模块化,更像是一种多态

而模块化更像是如果我有一个很大的业务,我把这个业务分为ABCDEFG等等小模块,然后其中的某一个部分可以再被拿来使用,且更好维护

·

模块?服务?