《代码整洁之道》摘录---对象和数据结构

本文探讨了数据抽象的重要性,对比了直接暴露变量与通过接口访问数据的方式,并介绍了类设计中的得墨忒耳律和数据传送对象的概念。

6.1数据抽象

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

如下面是一个阅读器,需要获取当前阅读进度。接口定义如下:

public interface PaperReader

{

double getTotalPages();

double getCurrentPageIndex();

}

而较好的方式是:

public interface PaperReader

{

double getCurrentProgress();

}

添加取值及赋值操作是严肅的事。

6.2数据、对象的反对称性

过程式代码 (使用数据结构的代码)便于在不改动既有数据结构的前提下添加新函数。面向对象代码便于在不改动既有函数的前提下添加新类。

6.3 得墨忒耳律 (The law of Demeter)
类C的方法f只应该调用以下对象的方法:
.类C本身
.由f创建的对象
.作为参数传递给f的对象
.由类C的实体变量持有的对象。

6.4 数据传送对象 (DTO,Data Transfer Objects)
只有公共变量,没有函数的类,称为DTO.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值