title: What is the best way to refactor Utility class in java (static classes)
body: <p>I am thinking about refactoring some of our utility class(static classes).
  Static classes are very hard to test and the main problem is that its making 
  Our code very tightly coupled , a lot of dependency.
  What is the best design pattern to use for refactoring ?
  I thought about immutable object with a builder, but I am not sure</p>
  
  <p>consider this code as 1 I want to refactor </p>
  
  <pre><code>public class UtilTest {
  
      public static boolean  isEligibleItem(Item item){
           if(isCondition1(item)){
               return isCondition2(item);
           }
  
           return false;
      }
  
      public static  boolean  isCondition1(Item item){
          //go to service that go to the data base  
          return false;
      }
  
      public static boolean  isCondition2(Item item){
          //go to service that go to the data base  
          return false;
      }
  }
  </code></pre>
  
  <p>If I want to test my  isEligibleItem() method I need to mock the 2 method that go to db .
  I can not do it as they are static . I want to avoid using Powermock</p>