模块设计原则

越底层的模块,应该越稳定,越抽象,越具有高复用度。稳定的最直观表现就是暴漏的API很久都不用变化,隐藏变化因子,避免传递给依赖它的模块。稳定的API越抽象,复用度越高,如OC的代理Protocol和swift中的范型T。

减少依赖,避免模块依赖不稳定的模块。模块稳定性会传递:B模块依赖于A模块,如果B模块很稳定,但是A模块不稳定,那么B模块也会变的不稳定。如果,A中代码段x是高复用的代码段,那么无妨将X单独做成一个模块X;如果,x是一个简单的方法或函数,不太适合做成一个模块,那就将x代码拷贝到B中,这样可以保证模块的稳定性和自完备性。

提升模块的复用度,自完备性有时候要优于代码复用。自完备性:尽可能的依赖少的模块来达到代码可复用。

每个模块只做好一件事情,不要让Common出现。模块化结构是让工程结构更清晰,每个模块都只做一件事情,都有自己的一个命名,这样这个模块才能良性发展。Common非常不稳定,大量依赖,全是耦合,整个模块无法复用到其它APP。

模块从上到下依赖,业务模块之间也尽量不要耦合。

你可能感兴趣的:(模块设计原则)