`
chelsea
  • 浏览: 119383 次
  • 来自: ...
社区版块
存档分类
最新评论

泛型编程 vs. 面向对象

    博客分类:
 
阅读更多
  1. 面向对象:封装(数据抽象)是基础,继承是手段,多态是目的;泛型编程:参数化类型(概念抽象)是基础,模板是手段,通用是目的

  2. 面向对象是运行时问题空间的多态,泛型编程是编译时算法空间的多态

  3. OO以Type为中心,GP以Concept为中心,而Concept完全独立于Type;OO的type是显式定义的,type之间的关系也是显式定义的,是语言支持的 ;GP的Concept是由算法隐式定义的,Concept之间的关系,是无法用目前的C++语法直接表达的;Concept的Model完全可以是毫无关系的Type,refinement独立于inheritence,original concept与其refinement concept的model之间可以毫无关系

  4. 以GP写就的算法,自动满足最小接口原则,无需为其参数定义形式化的类型;在OO中,这种形式化的Type具有的操作往往不是所有用到该Type的算法都会用到的

  5. OOP支持二进制组件形式的复用,GP支持源码层级的复用;与二进制码相比较,源码天生具有更多信息和更高级别,所以泛型编程支持更丰富的构件,但其代价是较弱的执行期动态性;你无法通过STL完成CORBA所能完成的功能,反之亦然,两种技术相互补充

分享到:
评论

相关推荐

    泛型编程分析.pdf

    与面向对象编程不同,泛型编程不依赖于多态和继承机制,而是通过类型参数化来实现代码的通用性。 - **STL(Standard Template Library)**:是C++标准库中泛型编程的最佳实践案例。STL包括了一系列的容器(如向量、...

    泛型编程与STLL.rar c++经典书籍

    STL的设计遵循了面向对象和泛型编程的原则,使得代码更易于理解和维护。 3. 容器:STL容器如vector和list,提供了动态存储和组织数据的方式。vector是动态数组,支持随机访问,而list则由双向链表组成,适合频繁的...

    面向对象程序设计泛型编程风格STL容器和泛型PPT课件.pptx

    面向对象程序设计中,泛型编程风格是一种强大的编程方法,它可以提供高度的代码重用性和类型安全性。在C++中,STL(Standard Template Library,标准模板库)是泛型编程的重要工具,它包含了抽象容器和泛型算法两大...

    3个泛型项目源码.rar

    泛型在编程领域中是一种强大的工具,特别是在C#这样的面向对象语言中,它极大地提高了代码的灵活性、可读性和复用性。这个"3个泛型项目源码.rar"压缩包包含的三个项目,无疑为学习和理解泛型在实际项目中的应用提供...

    泛型编程源起_实现与意义_下_.pdf

    这种一致性通常与面向对象编程中的继承机制有关。 #### 泛型编程的优点 1. **效率**:通过静态多态,泛型编程可以在编译时生成针对特定数据类型的优化代码,从而避免了运行时的间接调用开销,提高了程序的执行效率...

    基于Java的泛型编程

    相比于传统的面向对象编程,泛型提供了更高层次的抽象,使得同一段代码能够适用于多种不同的数据类型,而无需针对每种类型重复编写相似的代码。在Java中,泛型的引入极大地提升了代码的类型安全性,消除了不必要的...

    Cpp设计新思维_泛型编程与设计模式之应用

    2. 设计模式:设计模式是软件工程中解决常见问题的经验总结,是面向对象编程中的最佳实践。书中可能涵盖了常见的23种GOF设计模式,如工厂模式、单例模式、观察者模式等。理解并熟练运用这些模式,可以帮助开发者构建...

    C++基础知识点详细讲解:面向对象、内存管理与泛型编程

    内容概要:本文详细介绍了C++的基础知识点,涵盖面向对象编程(OOP)、内存管理、模板与泛型编程以及标准库(STL)等内容。首先讲解了C++的面向对象特性,包括封装、继承和多态。接着讨论了内存管理,涉及动态内存...

    城院 面向对象程序设计 集合框架与泛型实验报告.doc

    面向对象程序设计中的集合框架与泛型是Java编程中至关重要的概念,主要用于高效地存储、管理和操作对象。在这个实验报告中,我们将深入探讨这两个主题。 首先,Java集合框架是一个统一的架构,它提供了多种接口和类...

    C++泛型编程:源起、实现与意义 免积分

    早期的面向对象语言,如Java,通过使用单一基类(如`Object`)的方法来实现泛型容器,这种方式在C++中并不适用,原因在于: 1. **单根继承的限制**:C++中不强制实行单根继承,这意味着不能简单地通过所有对象继承...

    C# 2.0中泛型编程初级入门教程

    在C# 2.0版本中引入的泛型编程是面向对象编程的一个强大扩展,它允许程序员编写类型安全、可重用的代码,而无需进行运行时类型转换或使用低效的对象数组。泛型提供了类似于C++模板的功能,但更加强大且类型安全,...

    C++泛型编程和设计模式应用

    4. 泛型与面向对象设计的结合:探讨如何在使用泛型编程的同时,有效利用C++的面向对象特性,如继承、多态等,以达到最佳的设计效果。 5. 性能优化:讨论泛型编程和设计模式如何帮助优化程序性能,减少运行时开销,...

    泛型编程技术

    在Java、C#、C++等面向对象的语言中,泛型被广泛应用。本篇将深入探讨泛型编程技术,包括其概念、优势、使用方式以及在不同语言中的实现。 首先,让我们理解什么是泛型。泛型是一种编程技术,它允许我们在定义类、...

    理学继承接口与泛型PPT课件.pptx

    【理学继承接口与泛型】是编程领域中关于面向对象设计的重要概念,主要涉及到类的继承、接口的使用以及泛型的应用。以下是对这些知识点的详细解释: 1. **类继承**: - 类继承是面向对象编程的一个关键特性,允许...

    C++设计新思维:泛型编程与设计模式之应用

    《C++设计新思维:泛型编程与设计模式之应用》这本书深入探讨了C++语言在泛型编程和设计模式中的应用,对于理解和提升C++编程能力有着重要的指导价值。以下将围绕这些主题展开详细讨论。 一、泛型编程 泛型编程是...

    Java基础入门四泛型反射注解.pdf

    Java是一种广泛使用的编程语言,它具有面向对象、平台无关性以及强大的社区支持等特点。Java基础入门系列是帮助初学者掌握Java编程的重要学习材料,本篇主要介绍了泛型、反射和注解这三大高级特性。 泛型是Java SE ...

    C++ 是一种广泛使用的编程语言,它是 C 语言的扩展,支持面向对象编程(OOP)、泛型编程和过程化编程 C++ 因其高效、灵活

    c C++ 是一种广泛使用的编程语言,它是 C 语言的扩展,支持面向对象编程(OOP)、泛型编程和过程化编程。C++ 因其高效、灵活和强大的特性而被广泛应用于系统/应用软件、游戏开发、图形处理、嵌入式系统、科学计算等...

    软件工程面向对象编程教材及课件.zip

    面向对象编程(Object-Oriented Programming,简称OOP)是软件工程中的一种核心编程范式,它强调将现实世界中的实体抽象为类,通过对象来表示数据和操作数据的方法。在本压缩包“软件工程面向对象编程教材及课件.zip...

    vc++2005泛型编程7

    《VC++2005泛型编程7》是面向初学者和进阶者的一堂视频教程,旨在深入探讨Microsoft Visual C++ 2005中的泛型编程技术。泛型编程是C++的一个强大特性,它允许开发者编写不依赖特定数据类型的代码,从而提高代码的...

Global site tag (gtag.js) - Google Analytics