gpt4 book ai didi

java - "Do-er"类与静态实用方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:28:22 27 4
gpt4 key购买 nike

假设您有一个带有 read 方法的 FileReader 类。

我知道类级别的属性可以证明拥有一个实例是合理的。但是,是什么阻止了通过将这些相同的属性拉入相应的 static read 方法的范围内来创建等效的 ReaderUtils 类?

简而言之,在静态实用方法方面究竟是什么证明了“实干家”类的合理性?

最佳答案

OOP 的本质是封装状态/数据以及相关行为。静态实用方法类似于过程语言中的全局函数——您将行为(静态方法)与状态(此方法的参数)分开,从而打破了封装。

这在实践中意味着什么?您不能调用 reader.read(),而必须调用 ReaderUtils.read(file),这意味着您现在与实现紧密耦合——您隐式假设您将始终使用 ReaderUtils 并始终传入文件。

如果您改为使用通用的 Reader 接口(interface),您现在可以使用 FileReader,但将其换成 DatabaseReaderHttpReader 明天无需更改任何其他代码 - 所有 reader.read() 调用将继续以相同方式工作。

关于java - "Do-er"类与静态实用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12126625/

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