I have used this design pattern in several entity-component designs. Now I want to introduce it to my team:
It concerns a type-of relationship, where the instance structure and the type structure are mirrored using a naming convention:
Vehicle -- typeof --> VehicleType
Vehicle and VehicleType can then be specialized (using composition or inheritance), but each side must mirror the other in class/table structure (not fields or methods):
PassengerCompartment PassengerCompartmentType Passengers NumberOfSeats CargoCompartment CargoCompartmentType CargoWeight CargoCapacity
In this way, the programmer can deduce where relevant data is, without having to consult a diagram or documentation.
Does this pattern have a name?