+
+ |
+Declarative |
+Imperative |
+
+
+ |
+JOmniFactory |
+JFactory |
+JMultifactory |
+
+
+
+Inputs |
+Fixed number of input types |
+Any number of input types |
+
+
+
+Input requests |
+Declared upfront in class definition |
+Requested dynamically through JEvent interface |
+
+
+
+Outputs |
+Multiple types/outputs |
+Single type |
+Multiple types |
+
+
+
+Outputs declaration |
+Declared upfront in class definition |
+Declared in class definition |
+Must be declared in constructor |
+
+
+
+
+
+### Declarative Factories
+
+```cpp
+
+/// A factory should be inherited from JOmniFactory