天天看点

近段时间总是看到一些讨论结构化编程与面向对象以及面向接口编程的讨论,就个人而言自从见过面向对象设计以来就一直在学习、应用

作者:飞翔的城

近段时间总是看到一些讨论结构化编程与面向对象以及面向接口编程的讨论,就个人而言自从见过面向对象设计以来就一直在学习、应用和思考,分享一点感悟愿对有缘人有所助益吧。

首先,我一直推崇面向对象的思维方式,也在长期应用中自觉受益匪浅。近年来自己设计的系统走向组件化,较多应用了通过接口定义减少组件耦合,通过组合降低继承层级这些所谓面向设计的技巧。但我认为面向接口是面向对象在更大规模应用的升华而已。

从系统建模的角度而言,类只要存在就一定需要继承,复杂系统需要通过分类实现顶层简化,多级分类本身就是人类看待事物的本能,面向对象只是以语言来描述而已。

继承也不只是继承成员,类族共享基本的分级属性和方法,恰好对应真实世界事物分类的相似特性和功能。

从系统实现角度看,面向接口设计保证了非同类事物具有相似特性时可以自行实现而不用无限扩大类族。但另一方面,面向接口设计各自独立设计实现带来的更多的独立实现代码对工程实现中的成熟度又是降低的。

对同一平台的类族而言,派生继承成员和方法当然不是为了节省成员内存(实例內存消耗跟继承毫无关系),但是通过派生获得概念上的一致性和复用成熟算法对软件工程意义更大。

本人经历了从软件技术从结构化到面向对象再到现在的面向接口的发展过程,自己的技术体系也从单一应用发展到通用化平台再到现在的组件化设计应用。体会期间最本质的提升阶段还是由面向过程向面向对象的转变。这一过程历时近二十年,在惑悟间反反复复,正是掌握接口化设计才彻底算基本参透了吧。

面向对象本质上重点并不在于编码实现,而是分析建模。明白了这一点再去设计系统基本不会有多少争议,语言语法只是工具,在嵌入式的c语言用好函数指针同样可以实现面向对象设计。所以,没必要太过执着于设计方法的名称,毕竟还是"抓着老鼠才是好猫"!

近段时间总是看到一些讨论结构化编程与面向对象以及面向接口编程的讨论,就个人而言自从见过面向对象设计以来就一直在学习、应用
近段时间总是看到一些讨论结构化编程与面向对象以及面向接口编程的讨论,就个人而言自从见过面向对象设计以来就一直在学习、应用
近段时间总是看到一些讨论结构化编程与面向对象以及面向接口编程的讨论,就个人而言自从见过面向对象设计以来就一直在学习、应用

继续阅读