`
阅读更多
面向对象带来方便的同时亦带来很多的问题。类的继承在扩展的同时也违背了封装的原则,基类的内容通过子类的继承被暴露出来。对象的封装其实破坏了一种关联关系的整体性,同时过多的get和set方法也实在是浪费时间和增加代价。而方法的多态型表述所带来的可能的混乱不比其带来的方便少多少。因此,在C++以后的OO语言里,不论是Java还是C#,包括他们的编译器,都在这些方面做了一些改进。

在面向对象的开发过程中,是不是一定要坚持“万物皆对象”也是值得商榷的。一个简单的例子,如果我要一次更新10000条记录的某个子段。用SQL语句的话,只要一句update就可以了。但是在“面向对象”的思想下,我们不得不建立10000个实体,取得他们的所有值,再依次更改他们的属性,最后一个个保存到数据库中。即使不考虑10000次数据库连结的耗费,用这么多个实体这么大的代价究竟能换来什么呢。仅仅是代码的可读性、分层性和可维护性好一点么?

基于数据库的面向对象开发中,如何把实体-关系的建模语言反映到关系型数据库中、如何把关系型数据库的结构映射到对象中,都是目前比较头痛的问题。多表连接的查询处理、实体之间关系的OO表示,很多时候只能客制化的处理。在遵守OO的原则下,却不得不做出违反OO的结果,是技术的问题还是设计思想的问题呢?
分享到:
评论

相关推荐

    JAVA垃圾回收机制

    3. 复制收集器:将堆分为两半,每次使用一半,GC时将存活对象复制到另一半,适合短期生存的对象,但对长期生存对象效率低。 4. 增量收集器:分块收集,每次只处理一小部分,减少应用暂停时间。 5. 分代收集器:根据...

    list去掉重复对象

    一个list里面有多个对象,对象有几个字段,要求在对象里面不要有重复的数据的实现。

    deePool高效的JavaScript对象池

    DeePool 是一个专为JavaScript设计的对象池管理库,它的主要目的是优化内存分配和提高程序运行效率。对象池的基本思想是预先创建一组对象,当需要使用对象时,从池中获取,不再使用时则归还到池中,而不是立即销毁。...

    word2021链接对象和嵌入对象.docx

    * 提高工作效率:链接对象和嵌入对象可以将其他程序中的内容插入到 Word 文档中,从而提高工作效率。 * 实现动态更新:链接对象可以实现动态更新,讓信息保持最新。 * 灵活选择:链接对象和嵌入对象提供了灵活的选择...

    java对象转对象插件

    "java对象转对象插件"旨在简化这个过程,提供了一种便捷的方式来将Java对象转换为Map、List、Set或其他对象,提高了开发效率。下面将详细介绍这个插件的工作原理、使用方法及其优势。 首先,Java对象到Map的转换是...

    高效的,固定大小的对象池

    标题“高效的,固定大小的对象池”指的是一个特别设计的池,它具有固定的容量,并且优化了效率。 对象池的基本思想是通过减少频繁地创建和销毁对象来提升性能。当程序需要对象时,它会从池中获取一个已经初始化好的...

    C++对象模型

    提供丰富的程序范例、图片,以及对象导向观念和底层对象模型之间的效率测量。专注于C++对象导向程序设计的底层机制,包括结构式语意、暂时性对象的生成、封装、继承,以及虚拟——虚拟函数和虚拟继承。

    使用类的对象还是指针

    在编程中,我们可以使用new关键字创建对象指针来实现对象的动态分配和释放,可以避免内存碎片的出现,并且可以提高程序的效率和可靠性。例如,在dialog框类中,我们可以使用new关键字创建对象指针来创建一个非模式...

    QTP识别对象的原理

    5. **对象重用**:QTP鼓励对象重用,即相同或相似的对象只在对象库中存储一次,提高效率。 在进行QTP自动化测试时,理解这些原理可以帮助我们编写更稳定、可靠的测试脚本。例如,我们可以利用对象的智能识别特性,...

    比较JavaScript中的集合及其检索效率

    在探讨JavaScript中的集合及其检索效率时,我们主要关注两种数据结构:数组(Array)和对象(Object)。这两种数据结构在JavaScript中被广泛使用,各有其优势和适用场景,尤其是在处理大量数据时,它们的检索效率...

    强烈推荐PB用户对象

    用户对象(User Object)是PowerBuilder中的一个重要概念,它允许开发者创建自定义的、可重用的组件,以提高代码的效率和可维护性。在这个“强烈推荐PB用户对象”的资源中,我们可能找到了一个关于如何有效利用PB...

    C#自定义对象池

    为了评估性能,可以通过压力测试,观察在大量并发请求下对象池是否能有效减少创建和销毁对象的次数,以及提高数据库操作的效率。 总结起来,C#自定义对象池是一种提升系统性能的策略,尤其适用于资源昂贵且创建销毁...

    深度探索 c++ 对象模型(pdf版)

    提供丰富的程序范例、图片,以及对象导向观念和底层对象模型之间的效率测量。 C++成山似海的书籍堆中,这一本不是婴幼儿奶粉,也不是较大婴儿奶粉,它是成人专用的低脂高钙特殊奶粉。 对于C++底层机制感兴趣的读者...

    对象池简单Demo(资源包)

    这种方式减少了垃圾回收的压力,提高了程序运行效率,尤其在大量短生命周期对象的场景下效果显著。 二、Unity中的对象池 在Unity中,对象池通常通过编写脚本实现。我们可以创建一个类,包含一个List或其他集合来...

    电解整流设备的整流效率及其供电对象的电能利用率测算方法.pdf

    电解整流设备的整流效率及其供电对象的电能利用率测算方法pdf,电解整流设备的整流效率及其供电对象的电能利用率测算方法

    基于ADO.NET的SQL Server数据库image对象的存取及其效率分析.pdf

    在对大数据对象进行存取时,通常会遇到数据安全、完整性、一致性以及访问效率等多方面的问题。本文档提供了基于***技术框架对Microsoft SQL Server数据库中image对象的存取技术的介绍,并分析了数据分块大小对存取...

    PowerBI视觉对象共计271组,更新日期2021.01.20日.zip

    PowerBI是一种强大的商业分析工具,由微软开发,用于数据可视化和商业智能。...无论是在企业内部分享数据洞察,还是为客户提供定制化的分析报告,这些视觉对象都能极大地提升数据呈现的效果和效率。

Global site tag (gtag.js) - Google Analytics