类型——OOP和GP的核心概念
《Object Unencapsulated: Eiffel, Java and C++》的作者Ian Joyner说,Object-Oriented应该正名为Type-Oriented(面向类型)[1][5];侯捷先生在文章中说,STL 其实是在泛型思维模式之下建立起一个系统化的、条理分明的「软体组件分类学」。噢,什么叫分类学?还是类型。[3]看来“类型”这个概念值得我们一说再说。
在面向对象设计(OOD)中,“归类”是重要步骤,一个精心设计的类层次结构是则是OOD的重要成果。类的层次和界面定义得好,将造福软件系统的实现者、维护者和以后的扩展者:他们会惊喜地发现,许多错综复杂的关系在清晰的类型层次中不言自明;而失败的类层次结构则是灾难的来源:为了绕过不合理的类型设计带来的束缚,编码员不得不把各种能想到的技巧都用了上去[4]——包括强制的类型cast、直接对对象内存的访问等,而这些技巧往往和潜在的bug形影相随。
在数据结构的归纳和发展中,类型也扮演了重要的角色。ADT的引入是一个里程碑,早期的语言就开始struct(C)、record(Pascal)等复合结构类型为ADT提供支持。ADT是什么?抽象数据类型。
在程序设计语言中,类型的概念由来已久,而其内涵也在不断发展之中。语言对类型机制更好效率更高的支持成为语言成熟度的标志。OOP语言对类型的支持机制包括class
顶(0)
踩(0)
上一篇:再探C++的单件实现
下一篇:C++的36个学习要点
- 最新评论
