如何根据调用它的应用程序更改方法的行为?

oha*_*idi 5 java

我有一个共同点jar,它使用一些String对象的解组.该方法应该根据调用它的应用程序采取不同的行为,除了我可以通过尝试加载它具有的一些唯一类(不喜欢它)来识别应用程序之外,我该怎么做呢.是否有一些设计模式可以解决这个问题?

cde*_*zaq 3

正如我在评论中提到的,最好办法是将超级方法分解为封装特定行为的不同方法,并且可能还有另一种方法(由所有特定于应用程序的方法使用)来处理常见的行为。

最重要的是要记住,行为很重要。如果某事物在不同场景中表现不同,则调用应用程序实际上无法使用该方法,因为它无法控制所发生的情况。

如果您确实希望所有应用程序都调用一个方法,并且每个方法的行为都不同,那么您可以使用某种设计模式,以一种有意义且可维护的方式来实现。该模式称为“模板方法”。

它的总体思想是,调用应用程序传入被调用方法包装的逻辑块,并在需要时调用。这与函数式编程或使用闭包的编程非常相似,您可以像传递数据一样传递逻辑块。虽然 Java 本身不支持闭包,但其他基于 JVM 的语言(如 Groovy、Scala、Clojure、JR​​uby 等)支持闭包。

在某些情况下,同样的一般思想非常强大,并且可能适用于您的情况,但是这样的问题需要对应用程序领域和架构有非常深入的了解,并且您发布的问题中确实没有足够的信息,无法深入挖掘。