The marker interface pattern has its origin in the Java world. It is used to provide metadata capabilities in a language that doesn't have explicit support for that. The marker interface concept was largely replaced with the use of attributes or a similar code annotation tool in modern languages.
In programming, metadata provides a way of adding code-describing tags to the program. Unlike normal data variables and fields, which store information required to run the program and to process user data, metadata provides data about classes (and variables and fields) themselves.
Metadata is a label attached to a product. It is a note on a car dashboard saying, "Change oil at150.000 km," or a message on a sandwich in a communal kitchen stating, "This belongs to me!"
A marker interface pattern provides a way of adding metadata descriptions to a class without changing its layout. For example, let's say that we have a customer information class, such as
TCustomer, from the project...