возможно ли создать универсальный метод в интерфейсах?
говорят, что я хочу создать интерфейс
public interface Merge {
public void merge(Object host, Object other);
}
тогда я хочу, чтобы реализующий класс реализовал это, но определил тип хоста и другие.
, например
public class FooBazMerge implements Merge {
public void merge(Foo host, Baz other){
// merge some properties
}
}
причина, по которой я хочу сделать это, состоит в том, чтобы я мог сделать что-то подобное
public class SomeObject {
private Merge merge;
private Foo foo;
private Baz baz;
public setMerge(Merge merge){
this.merge = merge
}
public void merge(SomeObject anotherObject){
merge.merge(this.foo, anotherObject.getBaz());
}
}
Я в основном хочу делегировать ответственность / логику слияния someObject FooBazMerge. таким образом, я могу изменить реализацию его слияния, не прибегая к изменению моделей предметной области каждый раз, когда необходимо внести корректировку.