Metaobject Protocol
Протокол, при котором объект является прародителем класса, т.е. базовый объект может создавать классы, которые в свою очередь создают объекты. В таких системах предоставляются широкие возможности интроспекции и рефлексии.
https://en.wikipedia.org/wiki/Metaobject
Книга: The Art of Meta Object Protocol