本文章系原创,转发请注明出处。
面向对象开发的优缺点
【面向对象开发】是相对于【面向过程开发】的一种改进思路。
由于流水线式的面相过程开发非常直接,高效。在面对一些简单项目时,只需要几百行,甚至是几十行代码,就能完成功能,并且运行良好。
- 直接:程序的运行过程一目了然,就像阅读一篇文章一样,只要顺着读下去就行了。不需要全文搜索哪里有伏笔,哪里有包袱。
- 高效:不需要复杂的框架,不需要设计模式。不需要纠结功能的划分。
但是【面向过程开发】也有自身的不足。在项目膨胀到一定程度的时候,维护成本,风险是几何倍数的增长。
- 多人同时开发一个功能,维护同一条程序流水线。每个人的思路不一样,修改方案不一样,上游的代码经常会干扰下游代码的运行。
- 模块需要升级,需要扩容,但是对之前的代码毫无了解。不知道从流水线的哪里开刀。不知道自己会不会干扰到功能的运行。
银色子弹?
随着现代计算机性能的提升,程序的复杂度提升。我们不得不考虑,能否有更好的方式来改善【面向过程开发】的劣势。
当前发展的比较好的一个方向,就是【面向对象开发】。
但是,必须强调的是,这并不意味着【面向对象开发】是更好的,更加优秀的,未来的趋势。只有最合适的,才是最好的。
【面向对象开发】通过语法,面相对象设计原则等等,限制了一部分灵活性,又增加了一部分灵活性。
让代码既可以实现相对稳定,又可以实现对于扩展的包容。
- 相对稳定:开发一套成熟的框架,将不易发生变更的代码与易发生变更的代码隔离。(可以通过设计模式实现隔离。)
- 易扩展:通过多态,可以灵活的组装不同的功能实现方案。
除此之外,我们也能通过面相对象增强代码的可读性。
例如将关联度高的数据封装到同一个对象中。函数命名时使用谓语形式,调用时以 主语.谓语() 的样式进行展示。