马克思和中国的古人都认为,任何东西都有个度,什么东西都不是万能的,用过了头,好东西就成的坏东西。
昨天检视别人的代码,发现同事的代码中到处都是interface。interface是什么,是为了模块间了解耦合,还有用不同的方法提供同样的功能。在这些时候,我们用interface,但是,如果给任何一个类(实体类除外),连自已内部的类都在内,都定义一个interface的话,那么,代码中类的个数就要*2了,这种做法我认为是不明智的,是对interface的形而上学的认识和使用。
发现项目组半年来有一种不好的习惯,不管做什么都只是想着扩展,分离,而不想着算法和其它方面的问题。当然,扩展性是必须有的,但是,考虑扩展性要从实际出发,那些800年不可能变的地方不要定义太多的接口,也不必在任何两个相调用的类之间定义接口。接口是基于模块间的,一个模块内部的类就不要定太多的接口了,那样反而不好理解。一个简单的例子,美国人最先提出的模块化军舰,是要求动力模块,武器模块,生活模块,指挥模块之间有明确的接口,可以方便的更换和升级。但是,不要求每个零件之间有接口,那样成本太大,没有实际意义。就像我们改变模块的实现时只想着改变一个类就可以是不现实的!!!!在所有类之间定义接口,没有意义!!!