oo.webp

OO大法虽好,但即便是在MS这样的公司,也不是每个人都能理解的很深刻的,俗话说,过犹不及。有些脑洞大开的framework,初看不错,各种用法都很一致,但因过度抽象导致对debug十分不利。

这里总结几种不OO或者过度OO的设计,其实过度OO就等于不OO:

  • 所有的Constants都在同一个文件里定义。
  • 所有的依赖注入都在同一个文件里定义。
  • 对于任何简单的操作,都想定义一个基类。
  • 对于任何简单的操作,都想把它封装在一个class里。
  • 代码里的所有object,当你在IDE看definition的时候,看到的都是基类。
  • 代码里出现很多XXXManager,XXXProvider之类的类,这些类往往用来操作一堆某个基类继承下来的类。
  • 一个没有成员变量的类。
  • 在类里出现很多static方法。
  • 妄图把类都划分到不同的component里面,component之间的通信由某个单独的类来统一处理。

请记住OO大法的几个最关键之处:

  • 每个类必须有意义。
  • 每个类必须有自己的操作。
  • 每个类必须有自己的数据。
  • 每个类必须和其他类通信。
  • 每个类只做自己的事。
  • 等到有code重复了,再考虑继承,不要一上来先写基类。
上一篇 下一篇