今天学习有关解耦的内容,先看提示:
提示四十四:解耦代码让改变更容易。
提示四十五:只管命令不要询问。
提示四十六:不要链式调用方法。
提示四十七:避免全局数据。
提示四十八:如果全局唯一非常重要,那么将它包装到API 中。
作者主要围绕五个提示的方面对解耦简单说了一下。我对于耦合也有一点点自己的想法。首先,我认为耦合是不可避免的,只要你涉及到了多个模块,或多或少都会存在耦合。我们平时开发过程中也喜欢耦合,因为实在是太方便了。写代码的时候根本不用动脑子,直接把对象拿过来用就好。可是高耦合有这样的好处为什么我们还是不喜欢它呢。我认为高度耦合的代码只是贪图一时写的简单,可是需要修改的时候就是头疼的时候了。就和提示四十四说的一样,只有修改的时候,我们才会感觉到耦合的痛点。到处都有引用,导致我们都不敢轻易修改代码。对于第二点,我的理解是类应该把他能提供的功能暴露出去,而不是把细节都告诉别人,让别人来操作。这一点就我想到以前forwardingorder就是这样,提供的都是自己拥有的能力,不会把实现交出去。至于第三点链式调用,我感觉作者是说中间环节太多就不可靠了。特别的是他最后强调了管道不是链式调用,函数组合还是很好用的。至于最后两个关于全局数据的点,我想到了我们系统中的AOP。AOP确实非常方便,但是他也是一个超级全局的代码,很容易被修改具体代码的人忘记。之前我改用户分公司的时候就忘记了我们还把用户的ID和他的公司放在了全局了AOP中,经历了莫名其妙的错误之后才终于找到问题所在。但是就是我开头说的不可能完全避免耦合一样,AOP同时也非常强大,到底应该怎么使用才能达到我们心中的均衡呢?
网友评论