java - 包结构的最佳实践

标签 java design-patterns

我有以下情况:

我有一个带有 A 类的包 x,它使用 B 类和 C 类。 B 类和 C 类的访问级别是包私有(private)的。 B 和 C 实现相同的公共(public)接口(interface) I。

为了更好地组织代码,我想将类 B、C 和 I 分组到另一个包 y 中,但不将访问级别更改为公共(public)。

我该怎么做?除了在包 y 中创建公共(public)代理类 D 以及一些生成 I 实例的静态工厂之外,还有其他方法吗?

亲切的问候, 六甲_11

最佳答案

不要让“现状”决定您的设计决策。

你已经在进行“重构”;那么:如果有充分的理由让 B 和 C 可见;然后将这些类的重要部分公开。如果没有,就不要这样做;并保持包本地化。

这实际上取决于您的具体应用;以及今天如何使用 B 和 C。 stackoverflow 上的其他人无法做出此决定。

旁注:只是因为你需要一个工厂;这并不意味着事情需要是静态的。相反 - 你想尽可能避免“静态”的东西;因为不明智地使用“静态”常常会破坏您进行合理单元测试的能力。

关于java - 包结构的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35771279/

相关文章:

java - 这种一对类的情况是否有设计模式?

java - ext js 与 .jsp、java 后端兼容吗?

javascript - MVVM 对 JavaScript 库的依赖?

java - 适用于多个 api 类的 Google Endpoints Android 客户端库

java - 当给予大量资源来执行简单计算时,Spark 工作线程 'KILLED exitStatus 143'

java - spring boot redis starter 获取错误字符串超出最大允许大小 (512MB)

c++ - 单例同步 C++

c# - 带有中间变量的构造函数链接

java - 如何在单个构建器类中拥有多个构建器模式?

c# - 在应用程序设计方面需要帮助