I came across \"Stairway\" pattern description in the \"Adaptive code via C#\" book and I don\'t really understand how this is supposed to be implemented:
I would put it in the ServiceFactory. You need some parameter e.g. passed in the factory constructor or retrieved from configuration etc. that determines which IService implementation gets created by the factory.