面向对象设计使用语言选择
面向对象设计的结果既可以用面向对象语言、也可以用非面向对象语言实现。
使用面向对象语言时,由于语言本身充分支持面向对象概念的实现,因此,编译程序可以自动把面向对象概念映射到目标程序中。
使用非面向对象语言编写面向对象程序,则必须由程序员自己把面向对象概念映射到目标程序中。
例如,C语言并不直接支持类或对象的概念,程序员只能在结构(struct)中定义变量和相应的函数(事实上,不能直接在结构中定义函数而是要利用指针间接定义)。
所有非面向对象语言都不支持一般-特殊结构的实现,使用这类语言编程时要么完全回避继承的概念,要么在声明特殊化类时,把对一般化类的引用嵌套在它里面。
从原理上说,使用任何一种通用语言都可以实现面向对象概念。当然,使用面向对象语言,实现面向对象概念,远比使用非面向对象语言方便,但是,方便性也并不是决定选择何种语言的关键因素。选择编程语言的关键因素,是语言的一致的表达能力、可重用性及可维护性。从面向对象观点看来,能够更完整、更准确地表达问题域语义的面向对象语言的语法是非常重要的。
面向对象设计使用语言选择相关推荐
- 如何设计一门语言(五)——面向对象和消息发送
面向对象这个抽象的特例总是有说不完的话题,更糟糕的是很多语言都错误地实现了面向对象--class居然可以当一个变量类型什么的这只是让人们写代码写的更糟糕而已.当然这个话题第三篇文章已经说过了,现在来谈 ...
- C语言的面向对象设计-对X264/FFMPEG架构探讨
本文贡献给ZSVC开源社区(https://sourceforge.net/projects/zsvc/),他们是来自于中国各高校的年轻学子,是满怀激情与梦想的人,他们将用自己的勤劳与智慧在世界开源软 ...
- uml 时序图_面向对象设计与统一建模语言UML
面向对象设计 自从面向对象编程语言在软件开发中成为主流之后,遵循面向对象技术特点的软件设计工作,也一并发展了起来. 首先要提出一个问题,就是设计的工作是要做什么? 它包括的范围其实是很广泛的,从搜集用 ...
- C语言的面向对象设计 —— 对 X264/FFMPEG 架构探讨
类似题目的文章已经不新鲜了,这里,我仅仅总结自己的一些代码经验,结合两款在视频开发领域比较常用的开源软件探讨C语言的应用问题. 1.为什么要用C语言 曾几何时,我也不熟悉C,最早接触C的是在大学四年级 ...
- c语言游戏菜单栏界面设计,C语言课程设计-精美游戏目录选择界面.doc
计算机技术基础课程设计 C语言 设计报告 题目:精美游戏目录选择界面演示 学院:化学工程学院 专业:制药工程专业 班级:050607 姓名:徐成 指导教师:顾煜新 设计日期:2006年12月14日→2 ...
- 转:C语言的面向对象设计-对X264/FFMPEG架构探讨
https://www.cnblogs.com/xkfz007/articles/2616075.html 本文贡献给ZSVC开源社区(https://sourceforge.net/projects ...
- C语言的面向对象设计 —— 对 X264/FFMPEG 架构探讨——胜读十年书
http://blog.csdn.net/leixiaohua1020/article/details/12720427 类似题目的文章已经不新鲜了,这里,我仅仅总结自己的一些代码经验,结合两款在视频 ...
- C语言的面向对象设计-对X264/FFMPEG架构探讨 分享
标签: C语言 面向对象 分类: X264学习笔记 2009-07-17 00:53 本文贡献给ZSVC开源社区(https://sourceforge.net/projects/zsvc/ ...
- 对面向对象设计原则的总结
正如牛顿三大定律在经典力学中的位置一样,"开-闭"原则(Open-Closed Principle)是面向对象的可复用设计(Object Oriented Design或OOD)的 ...
最新文章
- 协同过滤——基于模型的算法
- Apache Ant 1.9.13和1.10.5发布–支持Java 11单文件源程序
- 漢城博殺的日子 (四)
- 随想录(fpga处理图像的优缺点)
- JasperReport+iReport进行java报表开发
- 关于音频PCM数据2字节(16位)byte与64位double之间的转换
- Arcgis Javascript那些事儿(四)--feature access服务编辑feature本质
- 每日一道python的leetcode:冒泡排序
- 前端怎么做接口签名验证 -baijiahao_阿里一面:如何保证API接口数据安全?
- WPS简历模板的图标怎么修改_个人求职简历模板怎么选 5000套简历模板领取
- Mode首席执行官Paul Dawes:从销售工程师到科技领导者
- unity 打开项目路径无效_怎么打开已有的unity工程文件?如何打开一个已有的unity3d游戏工程啊?...
- 重读DRRN(深度递归残差网络)
- ios10之后的一些新特性
- 推特推 Periscope 垂死挣扎还是扭转乾坤
- 思科模拟器 --- 三层交换机实现VLAN间路由
- 机器学习之路——《统计学习方法》(一)
- 大数据解密:《人民的名义》是怎么火起来的?
- Django中summernote富文本编辑器完整前后端
- python 之 批量将dcm文件转换为jpg格式