In JavaScript können Schnittstellen Attribute haben und eine Schnittstelle kann mehrere Schnittstellen erweitern:
Code: Select all
interface Interface1 {
name?: string
age?: number
}
interface Interface2 {
id?: string
}
interface InterfaceCombination extends Interface1, Interface2 {
position?: string
}
Erste Idee: Klassen und Delegation
Da es nur Java-Schnittstellen gibt endgültige statische-Attribute, ich wähle Klassen aus, um diese Attribute beizubehalten:Code: Select all
public class Class1 {
private String name;
private Number age;
public String getName();
public void setName(String name);
... // getter & setter for age
}
public class Class2 {
private String id;
... // getter & setter for id
}
Code: Select all
public class ClassCombination {
private Class1 class1;
private Class2 class2;
private String position;
public String getName() {
return class1.getName();
}
... // getters & setters
}
Zweite Idee: Schnittstelle & Getter & Setter
Obwohl eine Java-Klasse nur eine Klasse erweitern kann, kann eine Java-Schnittstelle mehrere Schnittstellen erweitern.Code: Select all
public interface Interface1 {
public String getName();
public void setName();
... // getter & setter for age
}
public interface Interface2 {
... // getter & setter for id
}
public interface InterfaceCombination extends Interface1, Interface2 {
... // getter & setter for position
}
Gibt es eine elegantere und einfacher zu implementierende Lösung?