gpt4 book ai didi

java - 实现一个引用多个类的 Java 类/接口(interface)

转载 作者:行者123 更新时间:2023-11-30 10:22:02 24 4
gpt4 key购买 nike

问题陈述:我们有多个类文件(~200+),每个类文件实现不同的方法,有些还使用彼此的方法来实现自己的方法。

我们希望在我们的代码中调用多个此类方法 (~20-30),并让它们提供写入 UI 网页和从网页读取等功能。

因为我们希望简化这个过程,我们想要一个包含所有这些多个类引用(~200+)的单个类/接口(interface),我们只需要在我们的代码中导入/包含这个单个类/接口(interface),然后使用它来引用类文件中的所有方法。

问题:以上可能吗?如果是这样,如何 - 通过使用类或接口(interface)或其他东西?

我在这里提供了我们尝试过的示例和信息:Implement multiple classes in the same interface in Java?

基本上我们都试过了

  1. 创建一个类,其中声明了所有其他类
  2. 创建一个接口(interface),它具有跨多个类(上面提到的 ~200+)的实现
  3. 实现了类和接口(interface)

这些方法似乎都行不通。

作为我们在代码中想要的内容的要点,在下面提供了一个示例。

示例(这不是正确的代码或实现,只是想提供一个示例,说明我们想在代码中做什么) :

我有 2 个类,名为“ABC_FamilyGivenName”和“ABC_DOBGender”。我创建了一个接口(interface)“Common”。

我想在“Application”类的代码中使用上述两个类中的方法。

对于当前的实现,Java 希望我向 ABC_FamilyGivenNameABC_DOBGender 添加一个@Override。 如果我们有约 500 个这样的方法,这又会产生开销,因此需要覆盖每个 c~200 类文件中的所有约 500 个??

***INTERFACE***:

public interface Common {
void ABC_GivenNames();
void ABC_FamilyNames();
void ABC_Gender();
void ABC_BirthDay();
}



***IMPLEMENTATION CLASSES***:

**ABC_FamilyGivenName**
public class ABC_FamilyGivenName extends Base implements Common {

public void ABC_GivenNames(){
// Implementation code
}

public void ABC_FamilyNames(){
// Implementation code
}
}

**ABC_DOBGender**
public class ABC_DOBGender extends Base implements Common {

public void ABC_Gender(){
// Implementation code
}

public void ABC_BirthDay(){
// Implementation code
}
}



**USE IMPLEMENTED CLASS IN CODE**:
public class Application extends Base {

Common commonClass = new ABC_FamilyGivenName();
/* *DO I NEED THIS? I THINK I DO, BUT CODE/JAVA SAYS I DO NOT*
* Common commonClass = new ABC_DOBGender();
*/

public void ELP_C0050_PassportDetails(){
commonClass.ABC_GivenNames();
commonClass.ABC_FamilyNames();
commonClass.ABC_DOB();
commonClass.ABC_Gender();
}
}

最佳答案

所以你可以用它做更多的事情,但这是我所说的一个非常简单的例子。不要在它们上面设置接口(interface),而是将它们插入。

//Component Classes

public class DOBGender {//Has the specific methods you want

}



public class FamilyGivenName {//Has the specific methods you want

}

//Then just plug them in to this class

public class Person {

DOBGender dobGender;
FamilyGivenName fgn;

public Person(DOBGender dobGender, FamilyGivenName fgn) {//Plug them in
this.dobGender = dobGender;
this.fgn = fgn;
}

public DOBGender getDobGender() {
return dobGender;
}

public void setDobGender(DOBGender dobGender) {
this.dobGender = dobGender;
}

public FamilyGivenName getFgn() {
return fgn;
}

public void setFgn(FamilyGivenName fgn) {
this.fgn = fgn;
}
}

就像我之前说的,这可以用更复杂的方式来实现,但也会让用户更容易编写这么多类的代码。如果这不是你想走的路线,我可以删除这条路线并采取新的方法。如果您希望我扩展这个想法,我也可以这样做。

希望对您有所帮助。

编辑:

如果您只想调用 Person 并开始使用组件方法,这就是我所指的。

    public class Person {

DOBGender dobGender;
FamilyGivenName fgn;

public Person() {
dobGender = new DOBGender();
fgn = new FamilyGivenName();
}

public DOBGender getDobGender() {
return dobGender;
}


public FamilyGivenName getFgn() {
return fgn;
}

}

关于java - 实现一个引用多个类的 Java 类/接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47523700/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com