gpt4 book ai didi

java - 有效Java : Making a class as private nested class (Item 22)

转载 作者:行者123 更新时间:2023-12-01 22:15:18 25 4
gpt4 key购买 nike

If a package-private top-level class (or interface) is used by onlyone class, consider making the top-level class a private nested classof the sole class that uses it (Item 22)

Effective Java 2nd edition

以上内容引用Effective Java。我知道这将促进类(class)无法用于其他目的。但我对此有两个疑问,

  1. 这样做,我们将把一个具有不同目的的类移动到其他类中。例如,一个 UI 类需要一个仅由该类使用的事件监听器,必须按照上述建议将其移至该 UI 类中。那么原则上 UI 类的内聚力会较低,因为它服务于 UI 渲染和事件监听。

  2. 引用上面的相同示例,如果我们将仅使用一次的类移动为内部类,那么我们将关闭扩展并开放修改,假设我们想要更改不同的监听器或注入(inject)动态监听器如果不修改 UI 类,我们可能无法实现。那么上述方法的可行性如何?

最佳答案

当我读那本书时,我是这样理解这一段的:

如果一个类被另一个类使用,并且没有其他方法可以通过任何其他方式使用它,则将其移动到使用它作为内部类的类。这种用法将内部类呈现为封装类的“私有(private)”功能。因此,为了保持整洁,有点类似于封装,作者建议采取这一行动。

从这个角度来看,这对我来说是有道理的。

简而言之,封装任何有意义的地方,但如果没有意义,就不要强制它。

关于java - 有效Java : Making a class as private nested class (Item 22),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31200415/

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