OOD之问题空间到解空间—附FP的建模
Posted 饭小胖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OOD之问题空间到解空间—附FP的建模相关的知识,希望对你有一定的参考价值。
通常会被问到,什么事OOD,然后大部分人期待的答案比较死板,继承、封装、多态!懂这个的人多的去了,有什么好问?回答出来的人是否拿着Java又去做一些面向过程的勾当?
计算机革命起源于机器,因此编程语言的产生始于对机器的模仿;因为机器只认得0和1,所以所有的编程语言都得提供一种抽象机制,人们解决问题的复杂性取决于抽象的类型和质量,汇编语言就是对机器码的轻量级抽象,然后像C一样的“命令式”语言是对汇编的抽象;人们为了让计算机去解决问题就需要用这些语言,本质是在把问题基于计算机的抽象结构给出解决方案,这里涉及问题空间和解空间这两个元素:
第一:问题空间
现实世界存在的问题,需要解决,具有其问题的结构特征;特征可以理解为现实世界的模拟抽象;始于人类对自然界分解,组织成的各种概念和关系;因此符合人类的思维方式,容易被人类理解;
第二:解空间
计算机的结构构成的空间,是问题最终得以处理为结果的地方,解空间的每一个解也是人类组织创建,但思想出发点是计算机的比较底层的抽象所组织的,可以认为,这类抽象结果,是一种基于计算机的建模过程;第一段提到面向过程的勾当,就是用高级过程语言抽象的思维去解决问题;因此不可否认,Java也是需要过程性元数据的;
面向对象:
因此,基于解空间,以计算机思维解决问题这类操作是费时费力的,而面向对象就是一种特别的只针对待解决问题的建模;
、、、、待续 5.11
以上是关于OOD之问题空间到解空间—附FP的建模的主要内容,如果未能解决你的问题,请参考以下文章
数学建模MATLAB应用实战系列(136)-优化算法:0-1背包算法(附MATLAB代码)
数学建模MATLAB应用实战系列(109)-KNN分类(附MATLAB代码)
15.软件架构设计:大型网站技术架构与业务架构融合之道 --- 技术架构与业务架构的融合
数学建模MATLAB应用实战系列(110)-机器人路径规划——快速扩展随机树(Rapidly-exploring Random Trees)(附Python代码)