谈起封装技术,我想大家并不陌生,从二进制到汇编,再到c语言和其它面向过程的语言,都是从简单易用的角度进行了封装,已经屏蔽了相当多的细节了,不光是不同的硬件,以及硬件的操作指令及其二进制结构。封装意味着开发者面对的一个个的功能块 ,一种逻辑上操作,并不真正面对具体的机器的指令形式,这确实给我们带来好处,我们不用懂很多的计算原理就可以控制计算机了。
语言的封装让我们简化了操作,那么操作系统的封装让我们简化了控制。我要多个任务执行那么我就调用一个库函数,或是几条语句,我要同步我就发信号量,一切变得那么简单,再也不用汇编或是机器指令去调用这一切。我们说封装好啊,操作计算机,简单的语句就可以了。
封装还演生了库函数,动态库等重用技术,很多操作或是计算都变得简单了。
由c语言进入到C++等面向对象的语言算是软件开发的一场革命,严格来说面向对象技术其实是一种面向现实世界的逻辑抽象和模型的提取,对于编译器来说只是增加了一些规则和约束,比如对像及其类的成员函数如何编译等。如果说面向过程语言的封装主要是侧重于算法的封装,那么面向过程就是侧重于现实模型的封装和关系建立。
比较好的封装如stl,或是mfc,确实到了快速开发的角度。但是还不够能够更加精细化模块化,对于一个大型的系统来说,模块分化,各自有一定的独立性,可以分配单独开发无论从模型抽象和实现上组合上都是最完美的。
封装是我们追求的目标,如何更简单化更方便使用更模块化,封装技术进入到操作系统对封装的支持。比如组件技术,支持组件的创建支持,组件的线程模式支持等。
组件模块化设计是我们追求的目标,那么如何在一个更为开放的应用中可以去调用其它程序的功能呢,控件和容器出现。
封装技术再多也是围绕软件工程开发而演生,服务于软件工程,服务于特定的操作系统,将后来软件开发工程可能工作越来越轻松,各种种样的库各种各样的封装,在引诱着我们,像鸦片一样,我在封装糊里糊途的写程序或是遇到开发时设计简单的结构软件重用度小,不对自己的技术进行封装思考,中国的软件可能再也发展不起来了。永远在别人的封装中写代码。
对于那些坚持用汇编或是c的开发者,我只能说你们是好样的,不屈服在某些封装技术下,具有牛的不怕苦不怕累的精神。
对于那些使用新封装技术的,我表示好样的,快速开发,省时省力,希望你们不要沉迷于这些封装技术,将这些技术的一些思路方法应用的软件中去。
对于那些在软件开发中运行这些封装技术原理来实施软件工程的,我说这样我们的软件开发将会上一个大的台阶。
对于对封装原理有透彻理解,进行封装库给别的开发者使用的,我敬佩你,中国的软件希望在这里。