gpt4 book ai didi

oop - 为什么还要费心使用公共(public)成员变量?

转载 作者:行者123 更新时间:2023-12-01 11:02:35 24 4
gpt4 key购买 nike

我不明白为什么我们甚至需要使用公共(public)成员变量。

为什么我们不能总是将它们设置为私有(private)并改用 getters/setters?能够使用我能做的不仅仅是访问变量的函数似乎总是比直接访问变量然后发现你需要稍后更改一些东西要好。

什么时候使用公众是谨慎的?

最佳答案

相当主观。

但假设我对什么似乎是好的做法非常主观的看法...

有时,当您仅将类用作“数据传输对象”(有时也称为“值对象”)时,这被认为是“谨慎的”。这些的本质是它们是精简的,不包含任何行为,只包含状态。如果你不熟悉这种模式,它基本上只是将对象/基元组合到一个容器中,这是它唯一的功能。

除此之外,由于您提到的原因,不建议使用公共(public)成员字段似乎是公认的做法。另一个原因是访问控制。有时消费者应该只能读取一个值,并且只能在本地设置。使用 Getters/Setters 可以让你做这样的事情。 (某些语言还允许您通过可在初始化时设置一次的常量/只读字段来执行此操作)

Fowler 似乎将序列化功能放在 DTO 本身上,但一种思想流派认为行为不应该存在于 DTO/值对象的字段上。 http://martinfowler.com/eaaCatalog/dataTransferObject.html

关于oop - 为什么还要费心使用公共(public)成员变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9406209/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com