So far, we have thought of extensibility in terms of other developers; this enables them to extend and augment our code safely and easily. What happens when we want different actions to occur based on something known at runtime? The traditional method would be a series of checkboxes on a parameter form, and the code would have conditions that would be written to test each of these settings.
Another option would be to allow the consultant to add features in a plugin pattern, for example, deciding on which code should run under what condition.
The pattern for this would be to have the following components:
- A base enum that is used on the user interface: the type of action required
- An interface so that we can write code without the actual concrete implementation
- A service class to allow us to construct and interact with the concrete implementation...