Java 我想确认我是如何理解两个对象之间的紧密耦合的
以下代码是否意味着所有车辆物体将始终有6个垃圾发动机?因为vehicle类与引擎紧密耦合,我们总是将其构造为vehicle对象的一部分Java 我想确认我是如何理解两个对象之间的紧密耦合的,java,dependency-injection,Java,Dependency Injection,以下代码是否意味着所有车辆物体将始终有6个垃圾发动机?因为vehicle类与引擎紧密耦合,我们总是将其构造为vehicle对象的一部分 public class Vehicle { public void crankIgnition(){ Engine sixLiterEngine = new Engine("6 Liter Engine"); sixLiterEngine.startEngine(); System.out.printl
public class Vehicle {
public void crankIgnition(){
Engine sixLiterEngine = new Engine("6 Liter Engine");
sixLiterEngine.startEngine();
System.out.println("Vehicle is running");
}
}
你问:
以下代码是否意味着所有车辆物体将始终有6个垃圾发动机
否,此代码表示车辆对象将没有发动机。请注意,您在构造函数中声明了引擎变量,因此它对构造函数的作用域非常有限,实际上只存在于构造函数中。一旦建造结束,车辆将没有发动机,什么也没有
也许你在问这种情况:
public class Vehicle {
private Engine;
public void crankIgnition(){
engine = new Engine("6 Liter Engine");
engine.startEngine();
System.out.println("Vehicle is running");
}
}
在这种情况下,是的,车辆与发动机紧密耦合。您的意思是在类级别定义一个名为Engine right的成员变量?然后在曲柄点火法中使用它,对吗?@Tazo:如果没有字段,您的车辆类别就没有状态。我的意思是,您当前的代码不是任何有用的示例。它是否仅与引擎紧密耦合?还是你例子中的6升发动机?@Tazo:没有6升发动机。相反,您需要一个Engine类的实例,其构造函数参数字符串表示某些内容。好的,但应用程序中所有车辆对象的实例是否总是一个?或者每个车辆对象将包含其自己的引擎实例?
public class Vehicle {
private Engine;
public void crankIgnition(){
engine = new Engine("6 Liter Engine");
engine.startEngine();
System.out.println("Vehicle is running");
}
}