My suggestion is inspired in the Command Pattern, where Util class is a Invoker and each doWork-help pairs are encapsulated using the Worker interface.
The Worker Inteface could be some like
public interface Worker {
public void doWork();
public int help();
}
The Util Class
public final class Util {
private Util() { }
public static void toWork(Worker worker){
worker.doWork();
}
}
The Concrete Worker (implementations of help and doWork)
public class ConcreteWorker implements Worker{
@Override
public void doWork() {
// TODO Auto-generated method stub
int variable = help();
}
@Override
public int help() {
// TODO Auto-generated method stub
return 0;
}
}
Another Worker
public class ConcreteWorker2 implements Worker{
@Override
public void doWork() {
// TODO Auto-generated method stub
int variable = help();
}
@Override
public int help() {
// TODO Auto-generated method stub
return 1;
}
}
And the Execution
Util.toWork(new ConcreteWorker());
Util.toWork(new ConcreteWorker2());