预习讨论题:面向对象设计的结果一定要用面向对象语言实现吗?同样,面向过程设计的结果一定要用面向过程语言实现吗?

讨论题

讨论题

2019生物医学工程(4班)沈芃秀 -
回帖数:0

 

面向对象设计的结果既可以用面向对象语言、也可以用非面向对象语言实现。
使用面向对象语言时,由于语言本身充分支持面向对象概念的实现,因此,编译程序可以自动把面向对象概念映射到目标程序中。
使用非面向对象语言编写面向对象程序,则必须由程序员自己把面向对象概念映射到目标程序中。例如,c语言并不直接支持类或对象的概念,程序员只能在结构(struct)中定义变量和相应的函数(事实上,不能直接在结构中定义函数而是要利用指针间接定义)。

同理,面向过程设计的结果既可以用面向过程语言、也可以用非面向过程语言实现。面向过程语言都不支持一般-特殊结构的实现,使用这类语言编程时要么完全回避继承的概念,要么在声明特殊化类时,把对一般化类的引用嵌套在它里面。

从原理上说,使用任何一种通用语言都可以实现面向对象概念。当然,使用面向对象语言,实现面向对象概念,远比使用面向过程语言方便,但是,方便性也并不是决定选择何种语言的关键因素。选择编程语言的关键因素,是语言的一致的表达能力、可重用性及可维护性。从面向对象观点看来,能够更完整、更准确地表达问题域语义的面向对象语言的语法是非常重要的。