接口冲突的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