面向对象还是现代软件开发中的主流思想吗
2个回答
2018-03-24 · 百度知道合伙人官方认证企业
关注
展开全部
实际上一般开发中大部分时间内, 主要的逻辑思考还是面向过程的. 比如循环, 判定, 跳转等等. 基本上各种算法都是面向过程的.
说说面向对象的时候, 一般已经开始上升一个层次, 比如说面向对象的程序设计. 此时需要切分各个功能模块的粒度, 组成, 依赖, 那么就要开始引入设计模式的一些思想来解决通用的设计问题. 这个阶段将会大量引入面向对象的设计思想, 但是我见过很多人在这个阶段滥用设计模式, 以及一些面向对象的概念. 最终写出来的代码是很高大上, 各种接口, 各种模式, 各种难用.
还有另外一些不同的设计方向, 比如你告诉我SQL是面向过程还是面向对象的? 一个LINQ放在代码里算是过程还是对象?
此外还有一些其他的软件设计思想, 小的比如说AOP, 大的比如说SOA, 微服务. 其实都是在解决一个矛盾, 那就日益扩大的代码规模和人类有限的认知能力之间的差异, 所以无论是面向过程, 对象, 切面, 函数的编程, 都是为了隐藏实现细节而简化系统认知的一种手段. 当然, 隐藏细节但又可以保证系统按照逻辑正常运行, 这是各种编译/链接系统的功劳.
最终, 这是一个人脑, 编译器, 软件各方面妥协/折中的产物. 在不同层次, 不同目的, 不同系统, 妥协的方向都各有不同, 开发人员接受的训练也各有不同. 我个人是不太赞成OO是开发主要思想这个论断的.
说说面向对象的时候, 一般已经开始上升一个层次, 比如说面向对象的程序设计. 此时需要切分各个功能模块的粒度, 组成, 依赖, 那么就要开始引入设计模式的一些思想来解决通用的设计问题. 这个阶段将会大量引入面向对象的设计思想, 但是我见过很多人在这个阶段滥用设计模式, 以及一些面向对象的概念. 最终写出来的代码是很高大上, 各种接口, 各种模式, 各种难用.
还有另外一些不同的设计方向, 比如你告诉我SQL是面向过程还是面向对象的? 一个LINQ放在代码里算是过程还是对象?
此外还有一些其他的软件设计思想, 小的比如说AOP, 大的比如说SOA, 微服务. 其实都是在解决一个矛盾, 那就日益扩大的代码规模和人类有限的认知能力之间的差异, 所以无论是面向过程, 对象, 切面, 函数的编程, 都是为了隐藏实现细节而简化系统认知的一种手段. 当然, 隐藏细节但又可以保证系统按照逻辑正常运行, 这是各种编译/链接系统的功劳.
最终, 这是一个人脑, 编译器, 软件各方面妥协/折中的产物. 在不同层次, 不同目的, 不同系统, 妥协的方向都各有不同, 开发人员接受的训练也各有不同. 我个人是不太赞成OO是开发主要思想这个论断的.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询