美文网首页
第6章-对象和数据结构

第6章-对象和数据结构

作者: itliyunlong | 来源:发表于2019-05-14 09:37 被阅读0次

6.1 数据抽象

于对象而言我们应该隐藏实现细节,保护数据的隐私性;应提供出合理的抽象操作方法、取值器、赋值器。

隐藏实现并非只是在变量之间放上一个函数层那么简单。隐藏实现关乎于抽象!类并不简单地用取值器和赋值器将其变量推向外间,而是曝露露抽象接口,以便用户无需了解数据的实现就能操作数据本体

6.2 数据、对象的反对称性

对象:把数据隐藏于抽象之后,曝露操作数据的函数
数据结构:曝露数据,没有提供有意义的函数
通过对象和数据结构本质对比体现出 数据 与 对象 是对立的:

过程式代码难以添加新数据结构,因为必须修改所有函数。面向对象代码难以添加新函数,因为必须修改所有类

老练的程序员知道,一切都是对象只是一个传说。有时候你真的想要在简单数据结构上做一些过程式的操作

6.3 得墨忒定律

只跟朋友谈话,不与陌生人谈话

模块不应了解它所操作对象的内部情况。对象隐藏数据,曝露操作。这意味着对象不应通过存取器曝露其内部结构,因为这样更像是曝露而非隐藏其内部结构。

通过存取器曝露其内部结构代码例子:ctxt.getOptions().getScratchDir().getAbsolutePath()

如果ctxt、Options、ScratchDir 只是数据结构,没有任何行为,则它们自然会曝露其内部结构,得墨忒耳律也就不适用了

隐藏其内部结构代码例子:ctxt.createScratchFileStream(classFileName)
直接将这一过程职责划分给对象,由对象直接完成这件事。

数据传送对象

最为精炼的数据结构,是一个只有公共变量、没有函数的类。这种数据结构有时被称为数据传送对象,或DTO

对于没有行为(函数)的数据结构对象,所有变量应该公开权限,不设有存取器。

相关文章

  • cleanCode之对象和数据结构

    1.对象和数据结构的区别 (1)数据结构中的对象只是数据,面向对象中的对象包括了数据和行为。 (2)数据结构暴露其...

  • Objective-C的底层实现(类与对象)

    概述 对象 Objective-C中,类和对象的底层数据结构,可以参考Objective-C底层数据结构。其中对象...

  • vue使用v-for双层遍历数据

    效果如图所示: 1.数据结构为数组嵌套对象 2.数据结构为对象数组 css样式和按钮

  • 基础定义

    一、数据结构 1.1 定义 数据项——>数据元素——>数据对象——>数据 数据对象+结构——>数据结构 数据结构包...

  • Redis专题

    1 数据结构与对象 1.Redis数据结构与对象——简单动态字符串2.Redis数据结构与对象——哈希3.Redi...

  • 数据结构的学习(一)

    什么是数据结构? 定义: (1)数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系.这些...

  • 数据库考试内容知识点整理

    1.数据模型:数据结构,数据操作,数据完整性约束条件构成 数据结构:描述数据库组成对象和对象之间的联系。 ...

  • 将扁平化的数据结构,组装成为对象树结构

    将扁平化的数据结构,组装成为对象树结构 进行对象遍历,找出对象key和子对象parent之间的关联

  • 序列化

    序列化和反序列化就是把数据结构活着对象转化成二进制串和把二进制串转化成数据结构和对象的过程 Serializabl...

  • 数据结构与算法概念

    第一天(2018/5/17) 什么叫做数据结构?(没有官方统一定义) 数据结构是数据对象,以及存在于该对象的实例和...

网友评论

      本文标题:第6章-对象和数据结构

      本文链接:https://www.haomeiwen.com/subject/qdsjaqtx.html