什么是上帝对象
上帝对象(God Object)是面向对象编程(OOP)中一种特殊现象,在面向对象编程中,我们把逻辑和数据封装成一个个对象,每个对象各司其职,最终实现我们的业务,但是如果业务复杂的情况下,可能会出现一个对象封装太多的数据或者担任了太多的职责的情况,这样的对象我们称为上帝对象。
在程序中,上帝对象由于其内部数据和功能太多,导致其在程序中就如同上帝一般,最终有太多的其他代码都会引用该对象,整个程序全部耦合在一块,无法拆分和优化。而且由于上帝对象中成员数据太多,在继承时会造成子类的臃肿,使得子类也变成上帝对象。
解决方式
当出现上帝对象时,我们就得重新审视我们的代码,按照模块化的思路进行重构,将不同业务职责的对象进行拆分和组合,将上帝对象中的业务部分重构成职责多个更单一的对象,将静态方法和静态变量归类到帮助类中,将一个大对象拆解成若干个小对象进行组合,最后实现代码的迁移。