《如何了解软件的设计》学习笔记0——模型-接口-实现

如何理解软件的设计?一套流程:模型-接口-实现。

模型
找类与类之间的关系,绘制整体图,这个步骤就是找模型。有个整体地图。

接口
类中的各方法就是接口。
接口反映模型。

实现
类中方法的函数体就是实现。

这3个步骤在面向对象的程序中是一贯的,正常的阅读代码过程。
岔个题外话,这适不适用面向过程(结构化编程)的程序呢?我觉得适用,只是变一下,模型就是分层、框架,接口和实现一样。

模型-接口-实现用来理解程序设计语言
1.程序设计语言的模型
汇编语言—>c—>c++/java—>python等。
从低级到高级,从静态到动态,从过程(结构化)到面向对象再到函数式编程,
语言模型的发展是朝着不断脱离硬件,而向解决问题的方向前进。

2.程序设计语言的接口
程序设计语言的接口不只包含语法,还有程序库。
学习一种程序设计语言提供的模型时,不仅仅要看语法本身有什么,还要了解有语言特性的一些程序库。
Andrew Koenig 和 Barbara Moo 写过一本书《C++ 沉思录》,有两章的标题分别是“语言设计就是程序库设计 ”和“程序库设计就是语言设计 ”。

提升软件设计能力,可以从编写程序库入手。
编写程序库也是提升构建模型的能力。

3.程序设计语言的实现
实现就是说这本程序设计语言是怎么运行的。
运行时代表了程序的实现。
怎么运行由程序员写的程序决定。
运行时是如何运行的?比如JAVA运行的过程是JVM对java字节码的解析,python运行过程是python解释器对python代码的解析。在linux下java的JVM和python的python解释器都是“运行程序的程序”——该程序在linux下运行实质是linux下创建的进程模型,所以符合linux进程模型——linux进程内存模型、调度等等。同样在其他操作系统上JVM和python解释器类似。

c和c++语言属于静态语言,也叫编译型语言,由编译器编译成固定了的对应cpu的指令集ISA的一大堆指令了,cpu直接运行这些指令。当然和JVM和python解释器类似,linux下运行是遵循同样的进程模型的。其他系统上类似。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值