In general, creating a subclass can be a time-consuming process, requiring a lot of foundation and overriding various template methods.
Meanwhile, using a delegate allows you to create a simple object that answers several specific questions or reacts differently.
Now that you combine this with the dynamism you can achieve by replacing delegates on the fly, he can create a very flexible, robust system that facilitates code reuse.
There are several general discussions of these things here and here . You can also find some old SO questions here and here .
Bryan mclemore
source share