Quote needed: Preprocessor usage is bad OO practice
I believe, that the usage of preprocessor directives like #if UsingNetwork is bad OO practice - other coworkers do not. I think, when using an IoC container (e.g. Spring), components can be easily configured if programmed accordingly. In this context either a propery IsUsingNetwork can be set by the IoC container or, if the "using network" implementation behaves differently, another implementation of that interface should be implemented and injected (e.g.: IService , ServiceImplementation , NetworkingServiceImplementation ). Can somebody please provide citations of OO-Gurus or references in