Use weak reference to MultiMethodFactory to allow related classes be garbage collected when all corresponding MultiMethodDispatchers are vanished