Background
I've been thinking about documenting design patterns in our code by setting up interfaces for the common design patterns so that when people read my code it would be clear that I am using a design pattern.
I would do this by create a project, in our solution, called Design Patterns, so it was clear it was meant to be a common terminology, as opposed to business/organization specific. Possibly even making it into a open source package to further distinguish it from the business logic in our project.
The project would consist of solely interfaces for all the classes that are used for different design patterns, that would be extended/implemented when you are implementing a pattern.
Questions
Are there any functional issues in bending interfaces into a tool to document something that is inherently not functional?
In Other words, What are the consequences of using an interface as a documentation tool, where the interface is strictly superficial?
Baring the first two questions introduce no issues, would you use this "tool" with common design patterns?
Can you think of any reasons why you would not do this?