这是我的用例,
public interface dataModel {
//nothing
}
public interface dataRepo {
public doIt(dataModel a);
}
public class concreteDataModel implements dataModel {
public doIt(dataModel a);
}
public class concreteDataRepo implements dataRepo {
public doIt(dataModel a);
}
我觉得我做错了。我有几个datarepo和datamodel。我希望repo采用自己的数据模型。是否有任何设计模式可以使其干净?
答案 0 :(得分:2)
您可以使用泛型。
public interface dataModel {
//nothing
}
public interface dataRepo<T extends dataModel> {
public doIt(T a);
}
public class concreteDataModel implements dataModel {
public doIt(dataModel a);
}
public class concreteDataRepo implements dataRepo<concreteDataModel> {
public doIt(concreteDataModel a);
}
答案 1 :(得分:0)
您可以尝试使用泛型:
interface dataModel { }
class concreteDataModel implements dataModel { }
interface dataRepo<E extends dataModel> {
public void doIt(E a);
}
class concreteDataRepo implements dataRepo<concreteDataModel> {
@Override
public void doIt(concreteDataModel a) {
}
}