今天继续修炼,要看一个程序员的功力如何,最重要的就是看他处理重复和耦合的能力。
什么是耦合?用一句话表达就是:
你知道得越少越好!
在面相对象编程里面,“你”是指一个类或者对象,最典型的坏味道是铁道代码,比如一个类A里面有一个方法,这个方法里有一行代码是这样的:
X x = new X()
x.getB().getC().getD().e()
这就意味着类A依赖了XBCD四个类,明显是知道得太多了,其中任何一个类的变化都可能要影响到A。
那更好的解耦方法是什么呢?这个方法叫Tell not ask,上面的代码可以重构成:
x.doE()
这样A就只依赖了X,实现了A和BCD的解耦~
网友评论