【发布时间】:2017-12-30 19:23:55
【问题描述】:
在我正在做的教程中,它使用接口来注入东西,例如它使用 IHotDrink 接口,然后创建一个实现 IHotDrink 的 Tea 类 。然后它有一个名为 Restaurant 的第三个类,该类在类中有一个 IHotDrink 字段,并在构造函数中对其进行初始化。然后通过将 Tea Class 注入到 Restaurant 类的构造函数(接受 IHotDrink 接口参数)
继续进行所以基本上我的问题是:要注入的每个字段都需要是一个接口吗?
假设我有一堆食物都实现了 IHotFoods 接口,还有一堆饮料都实现了 IHotDrink 接口,可以吗?我有一个 meal class 没有实现任何东西,而是将 IHotFood 接口和 IHotDrink 接口作为参数传入其构造函数(这将后来被不同的食物/饮料类注入)然后在餐厅类中有一个用餐场,我可以用不同的用餐对象注射?这样可以吗?或者我是否必须:制作一个饭菜接口,让饭菜实现饭菜,让餐厅有一个饭菜接口字段,我可以将饭菜注入?
我不是在问是否每个类都应该实现一个接口,我是在问它们是否应该总是有 接口字段 来将其他也实现该接口的类注入到它们中。 (如教程中的示例)
【问题讨论】:
标签: java spring dependency-injection