早起的花朵,ECharts作品展正式启动! >>>
最近几天,关于OO和OP的想法引起了很多争议. 我不确定是否可以进行全面分析. 因此,我参考了Internet上的一些经典文章,总结了这两种思想在软件体系结构中的某些异同.
首先,我个人的倾向是: 必须将OO和OP的思想结合起来. OO适合于细节封装; OP适合在模块级别和体系结构级别进行协调. 稍后,我将借用一些信息来补充此论点.
首先,有必要介绍OO和OP的基本定义和区别:
面向对象和面向过程在以下两个方面有所不同(以下被认为是软件工程中的常规做法,而不考虑罕见的情况):
以下文章来自JavaEye,其见解更加深刻.
面向对象的劣势,面向过程的优势
本文的想法是:
1. OO的特征是将数据和逻辑封装为一个整体,从而带来了强耦合的问题.
2. OP,数据和逻辑的特性是分离的,绝对是松散耦合的,但是封装还不够.
以上两个互斥的功能为我们带来了非常重要的提示:
为了维护代码(修改错误,添加新功能,独立协调成员的工作)而在模块之间进行的设计. 密切注意耦合程度,尽可能要求即插即用,并且模块是完全独立的. 目前,我们需要尽可能地遵循. OP的想法. 模块与模块之间的合作必须符合OP的想法. 逻辑是完全分离的. 内部单元的设计尽可能地被封装. 运用OO的思想,将各个部分组织成一个整体.
例如,在计算机组装中,总体而言,我们通过电源线连接机箱,插座和显示器. 上面的设计思想是根据OP(连接线可以视为胶合层)的直观连接过程,“ Unix编程艺术”显然要求该层尽可能薄),但是在机箱内部,每个部分例如DVD面向过程程序设计的基本思想,硬盘,主板等,是包装的理想对象,包括数据和处理动作. 这样可以实现插件管理模式.
特别强调的是,OP和OO的设计思想主要基于哪个级别,“模块”和“内部单元”本质上是一个非常抽象的概念. 在某种程度上,“内部单元”可能是“模块”,而在更大的层面上面向过程程序设计的基本思想,“模块”也被视为“内部单元”,因此,如何选择OO设计方法或OP设计方法取决于根据情况. 我们设计点中的任何一个都停留在产品金字塔结构的“内部单元”中,也停留在“模块”中. 下图总结了上面的表达式:
结合我们目前了解的GPS项目来说明项目中OP和OO的性能.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-247550-1.html