OO大法虽好,但即便是在MS这样的公司,也不是每个人都能理解的很深刻的,俗话说,过犹不及。有些脑洞大开的framework,初看不错,各种用法都很一致,但因过度抽象导致对debug十分不利。
这里总结几种不OO或者过度OO的设计,其实过度OO就等于不OO:
- 所有的Constants都在同一个文件里定义。
- 所有的依赖注入都在同一个文件里定义。
- 对于任何简单的操作,都想定义一个基类。
- 对于任何简单的操作,都想把它封装在一个class里。
- 代码里的所有object,当你在IDE看definition的时候,看到的都是基类。
- 代码里出现很多XXXManager,XXXProvider之类的类,这些类往往用来操作一堆某个基类继承下来的类。
- 一个没有成员变量的类。
- 在类里出现很多static方法。
- 妄图把类都划分到不同的component里面,component之间的通信由某个单独的类来统一处理。
请记住OO大法的几个最关键之处:
- 每个类必须有意义。
- 每个类必须有自己的操作。
- 每个类必须有自己的数据。
- 每个类必须和其他类通信。
- 每个类只做自己的事。
- 等到有code重复了,再考虑继承,不要一上来先写基类。