我在一个团队中工作,我们决定将其分组,以便每个组都将提供一个可以在不同 JVM 中运行的 jar 文件。在我的组中定义“A 类”时,我发现其他组只会访问一些属性和 setter ,在运行时,类型 A 的对象存储在缓存中并由团队的其他成员检索。为了提供必要的粒度,我决定创建两个 jar:
A1.jar 应该由团队的其他成员使用,并且包含将在缓存中存储和检索的 A 类。
A2.jar 将包含从 A 派生的 B 类和我的业务代码,该 jar 不会被团队的其他成员使用,但可以通过某些 SOA 接口(interface)访问。
我将团队其他成员无法访问的 setter 和属性移至 B 类,但我有一些疑问。
如果某些组需要对 A 类进行不同的访问(假设他们可以设置其他人不能设置的某些属性)怎么办?
除了 protected、public、private 关键字之外,是否有任何模式可以根据类用户的包来拒绝访问类中的某些属性?
p.d:我所说的组是指开发团队中提供一些 jar 文件的一组人员,这些组的构成反射(reflect)了逻辑业务,当我说“访问”时,我指的是通过 private/protected/public/package 关键字对代码进行静态访问,无论如何,我指的是与运行时属性相关的任何动态访问。
请原谅我的英语
最佳答案
听起来继承和模块的用法很奇怪。相反,我会发布一个 API,它是一个接口(interface)或一组接口(interface),可能还有一个工厂。
关于java - java中的包和类设计以及访问粒度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5912171/