SnowdreamFramework / ToyBricks

Android Library that provide simpler way to achieve modularity
微信公众号: sn0wdr1am
Apache License 2.0
33 stars 8 forks source link

使用注解的疑问 #10

Closed haiker2011 closed 7 years ago

haiker2011 commented 7 years ago

直接基于抽象的接口编程不就可以隐藏具体细节,一个模块打成一个jar包,需要替换实现,修改实现接口不变,为什么还要使用注解来注解接口和实现类,使用注解替换实现类的工作量和不使用有多大差别呢?不是很清楚这样做的目的。

snowdream commented 7 years ago

@haiker2011

  1. 首先,ToyBricks的原理也是基于接口编程,这一点都一样。
  2. 把接口和实现隔离,打成两个包,是有好处的。假如模块之间有相互调用的情况,接口和实现都打包成一个jar包,那么你的实现可能会被其他模块引用。长久下去,整个工程就会变成蜘蛛网,耦合严重。一旦你有需要,将其中一个模块的实现,替换成新的实现方法,你会发现摘不出来了。
  3. 高内聚,低耦合。把你需要的给你提供,不需要的全部隐藏。
haiker2011 commented 7 years ago

我明白了,谢谢你的回答。