代码整洁之道——对象和数据结构

探讨了对象和数据结构之间的二分原理,分析了过程式代码与面向对象代码在添加新函数或数据结构时的优劣。强调了面向对象编程在数据结构更改和函数扩展方面的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码整洁之道——对象和数据结构

对象和数据结构之间具有二分原理

对象和数据结构之间具有二分原理,先看下面两个例子:
在这里插入图片描述
在这里插入图片描述
上述两种定义的本质是截然对立的。
过程式代码(使用数据结构的代码)便于在不改动既有数据结构的前提下添加新函数。面向对象代码便于在不改变既有函数前提下添加新类。

反过来说:

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

举个例子:
假如,在6-5中,Square类的side域修改为String类型,将不得不对Geometry类中area()函数中所有使用side变量的位置进行类型转换,这就是过程式代码难以添加新数据结构,因为必须修改所有函数。
而在6-6中,如果把Square类的side域修改为String类型,仅在Square类中进行类型转换即可,不会影响其他函数。

显然,面向对象的结构更利于数据结构的更改。当需要添加新函数时,可以对对象进行扩展,例如通过继承来实现。

德墨忒耳律

在这里插入图片描述对上述语句进行解释:

类C的方法f可以调用以下对象的方法:
(1)C; 指的是同类中的其他方法。
(2)由f创建的对象; 比如在f中创建了一个user对象,可以调用user.getName()
(3) 作为参数传递给f的对象;比如request.getParameter()
(4) 由C的实体变量持有的对象。相当于调用类自身的域,不涉及泄露的问题

多使用数据传送对象(Data Transfer Objects)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值