《代码整洁之道 》第六章 对象和数据结构

第六章 对象和数据结构

将变量设置为私有(private )有一个理由:我们不想其他人依赖这些变量。我们还想在 心血来潮时能自由修改其类型或实现。那么,为什么还是有那么多程序员给对象自动添加赋 值器和取值器,将私有变量公之于众、如同它们根本就是公共变量一般呢?

6.1 数据抽象

image.png

6.2 数据、对象的反对称性

这两个例子展示了对象与数据结构之间的差异。对象把数据隐藏于抽象之后,曝露操作 数据的函数。数据结构曝露其数据,没有提供有意义的函数。回过头再读一遍。留意这两种 定义的本质。它们是对立的。这种差异貌似微小,但却有深远的含义。
面向过程

在这里插入图片描述

面向对象

在这里插入图片描述

6.3 得墨忒耳律

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

image.png

6.3.1 火车失事

image.png

6.3.2 混杂

这种混淆有时会不幸导致混合结构,一半是对象,一半是数据结构。
此类混杂增加了添加新函数的难度,也增加了添加新数据结构的难度,两面不讨好。

6.3.3 隐藏结构

怎么来获取临时目录的绝对路径?
image.png

6.4 数据传送对象

最为精练的数据结构,是一个只有公共变量、没有函数的类。这种数据结构被称为数据传输对象DTO。
Active Record是一种特殊的DTO形式,他们拥有公共的变量的数据结构,通常也会有save()或者find()这样可浏览的方法。Active Record一般是对数据库表或其他数据源直接的翻译。
我们不幸经常发现开发者往这类数据结构中塞进业务规则方法,把这类数据结构当成对 象来用。这是不智的行为,因为它导致了数据结构和对象的混杂体。
当然,解决方案就是把Active Record 当做数据结构,并创建包含业务规则、隐藏内部数 据(可能就是Active Record 的实体)的独立对象。

6.5 小结

对象曝露行为,隐藏数据。便于添加新对象类型而无需修改既有行为,同时也难以在既有对象中添加新行为。数据结构曝露数据,没有明显的行为。便于向既有数据结构添加新行为,同时也难以向既有函数添加新数据结构。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java代码整洁之道是指编写易于理解、易于维护、可扩展性强的高质量代码的一系列准则和实践。以下是一些Java代码整洁之道的要点: 1. 命名规范:使用有意义的变量、方法和类名,遵循驼峰命名法,并避免使用缩写和单个字符作为名称。 2. 函数和方法的简洁性:函数和方法应该尽可能短小,只做一件事,并遵循单一职责原则。避免过长的函数和方法,可以通过提取子函数或方法来减少代码复杂性。 3. 注释和文档:使用清晰的注释来解释代码的意图和逻辑,但不要过度注释。另外,编写良好的文档注释,以便其他开发人员能够理解和使用你的代码。 4. 避免重复代码:重复代码会增加维护成本,应该尽量避免。可以通过提取公共代码块为方法或函数,或者使用继承、接口等方式来实现代码的重用。 5. 异常处理:合理处理异常情况,避免捕获所有异常或忽略异常。根据具体情况选择合适的异常处理方式,例如抛出异常、记录日志或返回默认值。 6. 单元测试:编写单元测试是保证代码质量的重要手段。每个方法都应该有对应的单元测试,覆盖各种情况,确保代码的正确性和稳定性。 7. 代码格式化:统一的代码格式可以提高代码的可读性。使用合适的缩进、空格、换行等格式化规范,并使用代码格式化工具进行自动格式化。 8. 设计模式和面向对象原则:熟悉常用的设计模式和面向对象原则,如单一职责原则、开闭原则、依赖倒置原则等,合理应用于代码设计中。 9. 持续重构:随着需求的变化和代码的演进,及时进行代码重构是保持代码整洁的关键。通过重构,可以改进代码结构、提高可读性和可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值