When I am working on implementing functionality of a class, I usually like to have minimum public interface for that class and extract some of detail implementation into private methods, but I too often feel hard to decide either to keep the knowledges in private method or extract those into new classes even I know that currently those new classes aren’t used by anywhere else.
Could you share your guideline/experience on how you decide to choose one over the other?