java - 强制Java中的类调用方法

标签 java class design-patterns interface

我有一个类,它拥有一个私有(private)成员(它本身就是一个对象)。我想以合法的方式访问该成员并修改其属性。我想到的方法是让类使用其私有(private)成员调用我的类的方法(我想访问它)。

例如,我的类 ClassA 具有属性 mItem。我想获取 ClassB 中的 mItem 实例,以便我可以在稍后的时间点调用 mItem.update() (当用户更新 UI 上的某些内容)。从 ClassB 中,我想调用 ClassA 的方法(例如 passItem),该方法实际上调用某个方法(例如 obtainItem(传递 mItemClassB 的 Item item))。但是,我想强制执行这一点,以便 passItem 实现强制使用 mItem 调用 ClassBobtainItem。 p>

有什么想法吗?

最佳答案

如果您可以访问ClassA的源代码,那么访问私有(private)成员的通常方法是有选择地添加 delegate您感兴趣的成员属性的 setter 和 getter 方法。

但是,如果您无法访问其源代码,事情就会变得更加复杂。执行此操作的标准方法是使用 Java reflection检索对私有(private)成员的引用。然而,这违反了 OOP 的一些原则,因为外部实体依赖于 ClassA 的实现。

关于java - 强制Java中的类调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34564091/

相关文章:

java - 频繁出现 "offset out of range"消息,分区被消费者遗弃

objective-c - 如何获取类簇中 "top"类的名称?

ruby - 最佳实践 : Creating a module with expectation of type its included in?

Android和iOS应用共享类图

java - 正则表达式从匹配项中排除单词

java - 传递给另一个线程的大型 JDBC 结果集不会释放 JVM 内存

java - 如何验证构造函数中私有(private)方法调用的次数?

javascript - 在 javascript 中扩展 Array 对象的方法

Java/Kotlin - 区分不同模块中的相同限定名称

java - 如何在 Kotlin 中实现模板方法设计模式?