java - 使用不同的实现调用相同的方法签名

标签 java oop object design-patterns

鉴于: 我有两个不同的项目:legacy A 和 nextGen B。 还有第三个项目 C,由 A 和 B 共享。

目标: 我必须在第三个项目 C 中执行averageCalculation()。但是项目 A 和 B 的实现不同。使用相同的方法签名但不同的实现,我如何创 build 计?注意:项目A和B应该只调用averageCalulation()相同的方法签名。

项目C

Interface I {
averageCalculation();
}

Class CClass implements I{
?<averageCalculation()-for A>
?<averageCalculation()- for B>
}

项目A

{
I i1 = new CClass();
i1.averageCalculation();
}

项目B

{
I i2 = new CClass();
i2.averageCalculation();
}

上面的做法正确吗?如果是这样,我如何在 CClass 中创建averageCalculation() 的两个实现?

最佳答案

创建两个不同的类来实现您的接口(interface),并在每个项目中使用不同的类:

项目C

interface I {
averageCalculation();
}

class CClassForA implements I{
    averageCalculation(){...} // for A
}

class CClassForB implements I{
    averageCalculation(){...} // for B
}

项目A

{
I i1 = new CClassForA();
i1.averageCalculation();
}

项目B

{
I i2 = new CClassForB();
i2.averageCalculation();
}

关于java - 使用不同的实现调用相同的方法签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26615801/

相关文章:

c++ - 在派生类中重载基类方法

java - 对象到底什么时候初始化的?

java - SQL连接异常

java - 如何根据第一个已知标记分支 SAX 解析器?

java - 何时使用 java.* 和 jdk.* 包

spring - 如果该类不包含状态,使用非静态类是否合理?

java - 使用 Realm 检索单个人的聊天记录

java - Java模拟医院(优先队列)

javascript - JQuery UI 自动完成 - 无法加载对象

java - 变量、对象和引用之间有什么区别?