Factory()
An abstract factory class for creating Needs instance.
A factory implementation class must have a non-argument constructor.