I have a System class that can return a pointer to an Editor class. The Editor class is instantiated within the System class and passed pointers to System's private variables. The Editor class essentially acts as an alternative interface to System's internal data structures.
My question: Does a design pattern exist that allows me to prohibit the direct instantiation of the Editor class but somehow still instantiate it inside System?
Thanks.