Almost Completely Static Class Design

This is my last dumb question for today :stuck_out_tongue:

I am in the process of developing an Event based system, I have created an EventManager but I am in 2 minds about how this should be designed.

It makes no sense to have multiple EventManagers, so I was going with the design idea of making it almost a completely static class, the only method that is not static is the update method, therefore you would still have to construct one and call that in your render() method.

This would make it easier to add a new Event from anywhere in the code without having to rely on having an instance of it within scope.

But is this stupid? Still having to construct it just to call that one method?

Should I just make it completely static, it only has 2 constructors anyway, 1 of which is no-args. Other is not necessary as a method that is static does the same and is completely optional.

Here is what my addEvent method looks like:



	public static Event addEvent(Event event) {
		if (EventManager.events.size == maxEvents)
			throw new GameUtilRuntimeException(
					"Failed to add an event, max reached");
		if (event == null)
			throw new NullPointerException("Trying to add a null event");
		if (clock != null)
			if (clock.getFormat() == ClockFormat.HOUR_12) {
				if (event.oClock == null)
					throw new GameUtilRuntimeException(
							"Failed to add an event, AM or PM not specified");
			}
		/* Make sure we don't already have the exact same event in the array */
		if (!EventManager.events.contains(event, true))
			events.add(event);

		/* Return the event if we want to change anything */
		return event;
	}