Does anyone actually do that (for loop to assign a bunch of variables)? To me that just looks like a really awkward way to fake inheritance. Whenever I see the term "composition" used, at least in my experience, it was just about embedding one object in another. For instance, in a game engine like unity where you do things by composition and components, you would do something like obj.GetComponent<Renderer>() or obj.AddComponent<Thing>() or whatnot. "Composition" still kept the boundaries very well defined.