I’m working on a service that executes requests with a specific plug-in based on the plugin key the caller passes. Currently, I create a service class that contains a plug-in manager. The plugin manager registers all the plugins and manages executing the request by the specified plugin. Here is a simple example of how my service is structured: https://dotnetfiddle.net/5fwu23. I’m not sure if there is a better way to do this or specific design pattern to map to the correct implementation by a key. If you have any feedback on how I could design this better or a design pattern that fits this usecase let me know. If this is confusing let me know and I can give a better example.