I'm planning to implement a process using a java app. The process has various phases. Each phase has an input and output.
So it is something like input1=>phase1=>outpu1=>phase2=>output2=>phase3=>final_output
I want to write a java application in which the users can extend any phase to implement their own functionality.
for e.g: lets say that phase1 sorts the given input. I want to let my app users create custom class which will replace the functionality of phase1. they may want to do counting instead of sorting.
Any ideas on how to do this? plugin architecture? Any examples of frameworks which work in similar way? Where to start? edit: the input is from the user. let us say my app takes a set of numbers and does sorting(phase1) then removing duplicates(phase2) and adding(phase3) and gives output. Now I want the phases to be customizable. Probably by allowing them to define their own class which does something else.