I just came across another perfect way to support violation of OOP principles: Partial Class Definitions (C#) http://bit.ly/GFi1bp
It is possible to split the definition of a class or a struct, or an interface over two or more source files. Each source file contains a section of the class definition, and all parts are combined when the application is compiled. There are several situations when splitting a class definition is desirable:
- When working on large projects, spreading a class over separate files allows multiple programmers to work on it simultaneously.
- When working with automatically generated source, code can be added to the class without having to recreate the source file. Visual Studio uses this approach when creating Windows Forms, Web Service wrapper code, and so on. You can create code that uses these classes without having to edit the file created by Visual Studio.
It might make sense for “automatically generated source” case, but the first one is a seriously funny argument… I believe it might be coming back from the times of SourceSafe with its locks 😉