java - java中的包和类设计以及访问粒度

标签 java design-patterns

我在一个团队中工作,我们决定将其分组,以便每个组都将提供一个可以在不同 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/

相关文章:

java - 自定义 Swing 布局

Java:如何使用 HashMap 的一对键

Java使用递归void函数的结果,将每个结果添加到列表中并在另一个函数中返回

java - 在 RabbitMQ 中的给定日期之后取消订阅特定队列

c# - SqlConnection、连接池和工作单元的设计模式

java - 是否有模型/实体类的模式

java - 为什么 JTextField.setText ("String") 在 DocumentListener 中不起作用?

java - MVP 安卓 : how to pass data from one activity to another?

java - 使用 OOP 和设计模式创建标准图形构建器

apache-flex - Flex : How to keep code away from MXML