我应该将一个单身用于不同目的吗?

时间:2015-03-06 14:01:44

标签: java design-patterns optimization singleton refactoring

好的,stackoverflow。我必须使用singleton进行数据库和互联网处理。使用一个单例(在我的单例类中有一个混乱)或两个不同的单例(并复制一些单例代码)是一个好习惯。
提前致谢。

2 个答案:

答案 0 :(得分:2)

从来没有一个好的方法来使用同一个类,有两个不同的目的。 每个班级都应该有独特的责任(Single Responsibility Principle

如果需要在类之间复制一些代码,可以考虑为两个类重构和创建超类(如果类可以是兄弟),或者使用某种辅助类来执行常见操作。

答案 1 :(得分:0)

是的,你可以创建枚举说

    public ProcessManager{
     DB_PROCESS {    
                  public void process(){
                                ... specific code for db
                                commonCode();         
                                ..specific code for DB
                               }
                      }, 
     NETWORK_PROCESS{
                   public void process(){
                              ... specific code for network
                              commonCode();
                              ...specific code for network         
                               }
                     };

     public void process(){
     }

     public void commonCode(){

             ... common code
     }  
     }

如何打电话?

ProcessManager.DB_PROCESS .process(); ProcessManager.NETWORK_PROCESS.process();

记住枚举是实现单例类的最佳方法(有效的java-2nd版)