面向过程就是将分析出的的问题的解决步骤,一步一步通过函数实现,然后使用的时候一个个一次调用就可以了。
面向对象是把构成问题的事务分解成各个对象,然后让各个对象分别解决好各自的事情,描述某个事物在整个解决问题的步骤中的行为。
形象来说就是,面向过程出来的是蛋炒饭,面向对象出来的是盖浇饭。
对于蛋炒饭来说,我们必须把米饭和食材放在一起炒,好处是混合均匀,搭配好,每一步都在我们的控制中;
对于盖浇饭来说,则是把米饭和食材单独做好,你要什么食材,直接放在米饭上即可,好处就是丰富且简单的定制化,比如我们想要啥就加啥,如果不想要就把上面的食材拿掉在重新打即可,但是对于蛋炒饭就没这么简单了,他还得全部丢弃了再重新弄一个出来,也就是再重新写一个程序,坏处也很明显,就是代码间没办法进行混合,可能搭配起来没有蛋炒饭搭配的那么好,那么均匀。
盖浇饭的好处就会菜饭分离,从而提高了灵活性,也就是维护性好,耦合度低,不会牵一发而动全身;而蛋炒饭则混合在一起,根本没法灵活搭配,维护性差,耦合度高,改一点代码可能涉及到多处,并且炒不同的食材还得抄不同的饭。