interface Car {
public void tyres();
}
class BMW implements Car {
public void tyres() {
System.out.println("BMW");
}
}
class HMW implements Car {
public void tyres() {
System.out.println("HMW");
}
}
public class DependencyInjection {
private Car car;
public void draw() {
this.car.tyres();
}
public void setCar(Car car) {
this.car = car;
}
public static void tyres1(Car c) {
c.tyres();
}
public static void main(String[] args) {
Car car = new BMW();
tyres1(car);//point 1
DependencyInjection dep=new DependencyInjection();
dep.setCar(car);//point2
dep.draw();
}
}
我想澄清一下我们在第1点和第2点创建依赖注入的优势是什么。请详细解释我,因为我是春天的新手???
答案 0 :(得分:3)
这不是Spring特定的设计原则,并且很难掌握你提供的片段,它没有明显的分离片段,但随着系统的发展变得更有帮助。
通过删除对具体类的引用,可以消除“类型耦合”,这意味着内部类可以保持“关闭”:如果所涉及的类的实现发生更改并且客户端代码可以使用,则不必更改在不需要内部类需要改变或意识到实现的情况下,根据需要进行适应的不同方式。这也有助于确保类中的方法体专注于其角色和特定工作,而不是与任何其他实现纠缠在一起(这有助于明确定义应该被视为API的一部分)。
您还应该阅读有关SOLID类的概念: http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)
根据我的经验,最直接的好处是它还允许进行更完整,更孤立的单元测试,如果这是开发过程的一部分(在系统增长时也建议这样做),这非常重要。
答案 1 :(得分:0)
实际上,依赖注入执行的部分是由您的代码完成的:
Car car = new BMW();
依赖注入功能可以帮助您提及依赖关系,因为配置和框架实际上会将其余的对象注入引用。