This is language agnostic, but I’m working with Java currently.
I have a class Odp that does stuff. It has two private helper methods, one of which determines the max value in an int[][], and the other returns the occurrences of a character in a String.
These aren’t directly related to the task at hand, and seem like they could be reused in future projects. Where is the best place to put this code?
-
Make it public — bad, because Odp’s functionality is not directly related, and these private methods are an implementation detail that don’t need to be in the public interface.
-
Move them to a different class — but what would this class be called? MiscFunctionsWithNoOtherHome? There’s no unifying theme to them.
-
Leave it private and copy/paste into other classes if necessary — BAD
What else could I do?
Here’s one solution:
Move the method that determines te max value in a two-dimensional int array to a public class called IntUtils and put the class to a util package.
Put the method that returns the occurrences of a character in a String to a puclic class called StringUtils and put the class to a util package.
There’s nothing particularly bad about writing static helper classes in Java. But make sure that you don’t reinvent the wheel; the methods that you just described might already be in some OS library, like Jakarta Commons.