Helper class

From Wikipedia, the free encyclopedia

In object-oriented programming, a helper class is used to assist in providing some functionality, which isn't the main goal of the application or class in which it is used.[1][2] An instance of a helper class is called a helper object (for example, in the delegation pattern).

Helper classes are often created in introductory programming lessons, after the novice programmer has moved beyond creating one or two classes.

A utility class is a special case of a helper class in which the methods are all static.[3] In general, helper classes do not have to have all static methods, but may have instance variables. Multiple instances of the helper class may exist as well.

Example[edit]

This is also an example of a utility class. Below are extension methods on the string object.

public static class PrependHelper
{
    // static functions
    public static string MeowPrepend(this string text)
    {
        return $"Meow meow {text}!";
    }

    public static string WoofPrepend(this string text)
    {
        return $"Woof woof {text}!";
    }

    public static string WoohPrepend(this string text)
    {
        return $"Wooh {text}!";
    }
}

Alternative to helper class[edit]

Functions which are going to be helper classes could be placed close to where they are used. The other alternative is wrapping helper class parameters into a class as a field. That class can have a name from the business domain connected to the fields it has. The example below shows how to convert helper methods to methods on domain types:

public class Text
{
    string text;

    public string MeowPrepend()
    {
        return $"Meow meow {text}!";
    }

    public string WoofPrepend()
    {
        return $"Woof woof {text}!";
    }

    public string WoohPrepend()
    {
        return $"Wooh {text}!";
    }
}

References[edit]

  1. ^ Tee, Sim Hui (2009-12-03). "Eliminating method redundancy for the improvement of inner class design". ACM SIGSOFT Software Engineering Notes. 34 (6): 1–3. doi:10.1145/1640162.1640174. ISSN 0163-5948.
  2. ^ "What is a helper? Is it a design pattern? Is it an algorithm?". Software Engineering Stack Exchange. Retrieved 2023-10-31.
  3. ^ "Java Helper vs. Utility Classes | Baeldung". Baeldung. April 28, 2023. Retrieved October 31, 2023.

See also[edit]