Spring 松耦合实例

假定我们现在需要输出不同格式文件,传统实现方式如下:

1 创建输出文件接口IGenerateFile.java

package com.xidian.edu;

public interface IGenerateFile {
    public void generateFile();
}

2 创建TxtGenerateFile.java、XmlGenerateFile.java实现IGenerateFile接口

package com.xidian.edu;

public class TxtGenerateFile implements IGenerateFile{

    @Override
    public void generateFile() {
        System.out.println("***Generate Txt File***");
    }
}
package com.xidian.edu;

public class XmlGenerateFile implements IGenerateFile{
    @Override
    public void generateFile() {
        System.out.println("***Generate Xml File***");
    }
}


3 创建GenerateFileHelper类,产生相应对象,此类的作用是当需要调用的对象发生变化时只需要在Helper类中改变生成的对象,例如代码中需要从TxtGenerteFile转换为XmlGenerateFile类型,此时只需要改变Helper中的代码,而不需要改变调用对象处的代码。

public class GenerateFileHelper {
    public IGenerateFile generateFile;
    public GenerateFileHelper(){
        generateFile=new TxtGenerateFile();
    }
    public void generateFile(){
        generateFile.generateFile();
    }
}

4 Main 函数调用

package com.xidian.edu;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class AppMain {
    public static void main(String args[]){
        /***tranditional implement***/
        GenerateFileHelper helper=new GenerateFileHelper();
        helper.generateFile();

        /***Spring inplement***/
        ApplicationContext context=new ClassPathXmlApplicationContext(new String[]{"GenerateFile.xml"});
        GenerateFileHelperForSpring iGenerateFile=(GenerateFileHelperForSpring)context.getBean("generateFileHelper");
        iGenerateFile.generateFile();
    }
}


虽然Helper类在一定程度降低了类对象之间的耦合性,但是Helper类与其它对象之间依然存在较强耦合性,以下介绍引入Spring框架解决对象之间依赖关系强导致的对象之间耦合性。

1 引入GenerateFileHelperForSpring

package com.xidian.edu;

public class GenerateFileHelperForSpring {
    IGenerateFile iGenerateFile;
    public void generateFile(){
        iGenerateFile.generateFile();
    }

    public void setiGenerateFile(IGenerateFile iGenerateFile) {
        this.iGenerateFile = iGenerateFile;
    }
}

2 引入GenerateFile.xml,由xml文件指定对象生成.



    
        
    
    
    

这样处理的好处是只需要修改xml文件就可以产生不同对象,而不需要改动代码,耦合性大大降低.

目录结构如下:

Spring 松耦合实例_第1张图片

运行结果截图:


 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
 

你可能感兴趣的:(JAVA,三大框架SSH)