接口冲突的java

我目前工作的一个大项目,其中包括三种不同类型的CRUD的。我的ICrud接口包含<t>,以便在我实现它时放入所需的数据类型。接口冲突的java

我的问题是,当我在第三类中实现它,我愿的方法(readAll)使用其他数据类型比4种的其他方法(CRUD)之一。这有可能以任何方式?

现在我有readAll方法返回匹配的数据类型,但返回null因为它没有被使用,而是创建了另一个方法readall2(),它返回正确的数据类型,但不是我的接口的一部分。

的ICrud接口:

public interface ICrud<T> { 

List<T> readAll();

List<T> read(int cvr);

void create(T t);

void delete(int cvr);

void update(T t, int id);

}

我如何实现它:

@Service 

public class AdminRepository implements Ilogin<Admin>, ICrud<Driver>,

IAdmin<Company>

我希望如何使用ReadAll:

public List<Company> readAll() 

(不是司机,但司机对所有在接口的其它方法)

我想补充;起初,我有iAdmin中的readAll,因为它需要公司,但是我在6个其他类中实现了ICrud的readall方法。

感谢您的任何帮助。 :)

回答:

你有一个设计问题,我建议你在下面的链接了解SOLID原则:

https://scotch.io/bar-talk/s-o-l-i-d-the-first-five-principles-of-object-oriented-design

在正确的设计,你不应该在所有实现一个接口,如果你不实现它的一个方法(readAll你的情况)。这意味着你正在混淆关注点,并且你的界面必须分成更小的界面。也许将readall分解成单独的界面将解决您的问题。例如,而不是ICrud,单独为写操作创建一个接口,另一个用于读操作,另一个用于readAll。

有许多办法来解决你的问题保持了接口ICrud的是,如使用对象为retrun类型,泛型或动态或。但是从根本上解决你的问题就是遵循上面提到的一个好设计。

以上是 接口冲突的java 的全部内容, 来源链接: utcz.com/qa/260256.html

回到顶部