我最近从amazon.in获得了一本名为java设计模式的书。现在我正在阅读工厂设计模式。我无法得到什么是松耦合请帮帮我。以简单的方式解释我。举个例子。
答案 0 :(得分:0)
考虑以下代码(1)
Class Vehicle{
int modelYear=2010;
Engine engine=new Engine(); //Engine object
}
现在考虑这个(2)
Class Vehicle{
int modelYear;
Engine engine;
Vehicle(int modelYear,Engine engine)
{
this.modelYear=modelYear;
this.engine=engine;
}
在案例1中,Vehicle类依赖于Engine类来创建Engine对象意味着更多依赖,即紧耦合
在第2种情况下,我们创建了Engine对象else(Container)并通过构造函数或setter方法传递对象。意味着较少的依赖,即松耦合。
Factory Design Pattern谈到同样的事情,减少两个类之间的依赖关系在别处创建对象,并通过构造函数或setter方法传递它们。
整个弹簧框架基于此,即松散耦合,IOC容器在需要时创建对象,并将它们注入相应的目标(依赖注入)
答案 1 :(得分:0)
public interface Iscan {
void scan();
}
public EyeScannerClass implements Iscan{
void scan(){
System.out.println("Some Person's eye scanned...")
}
public BarcodeScannerClass implements Iscan{
System.out.println("A produc's barcode from supermarket scanned...")
}
public ScannerFactory{
public static Iscan createScanner(){
//here you can choose which scanner to create by the help of polymorphism because different scanner classes implementing same scanner interface
}
}
public SomeBusinessLogicClass {
public void someMethod(){
//if the scanner impl changes you do not need to change your business logic. all change must be done in factory and the other users of that factory is not affected.
Iscan scanner=ScannerFactory.createScanner();
}
}
我尝试用上面的工厂设计模式解释为什么它很有用。我们有一个接口和该接口的两个实现者以及一个工厂类,它使用该工厂创建扫描器和客户端。如果在扫描仪上发生变化,则客户端不需要更改任何内容。通过这种方法,我们提供松耦合。