一个如何解耦的案例讲解

阅读更多

做具体的业务软件,做泛泛的技术平台,做某个面上的业务平软件,我相信在都有针对各自的项目特性有不同的要求,在这里我分享一下在由具体的业务软件项目向这个面上的一个业务平台的一个转化上有个需要注意的点就是业务扩展性要更好更优,业务代码最好不要浸入平台代码中去,如何有个统筹分类很重要,比如说增删改查,可以分为四种操作,至于用什么手段来解耦,在这里我用的是spring-xml配置文件,在这里贴上伪代码:

 

 

interface BizProcessor{

       //具体业务操作接口
       public void process(BizBO bizBO);

}

 

 

 

public class DeleteProcessor implementes BizProcessor{

public void process(BizBO bizBO){
//具体的业务操作,这里是删除

}

}

 

 

Public InsertProcessor implements BizProcessor{
   public void process(){
       //具体的业务操作,新增操作
    }

}

 

    处理器工厂,提供每个具体的业务操作实例

 

Public class BizProcessorFactory{
     private Map busOperatesMap;

    private ExecutorService pool = Executors.newFixedThreadPool(3);     

     public void doProcess(){

             pool .execute(new BizThread (BizBO));

     }


     //如果平台代码要求快速响应,可以通过线程池异步操作
     class BizThread extends  Thread{
 
           public void run(){
                   BizProcessor processor = busOperatesMap.get(BizType);
                   processor .process();
            }

     }


}
 

   以上伪代码展示了一个基本的解耦过程,只要在平台代码中调用工厂类的doProcess()方法就可以了,可以将具体的操作    转移到具体的业务代码模块中,还是达到了一个解耦的目的。

 

 

你可能感兴趣的:(spring,工厂,线程池,解耦)