Entity Component System is a pattern that separates game objects into three main parts - entities, components, and systems. An entity is a discrete object representing an actor. A component describes a singular behavior of an entity. Systems iterate over components to perform tasks like rendering graphics or physics. This pattern avoids issues with classical inheritance by using composition - entities have flexible sets of components without being tied to a class hierarchy. It promotes code reusability and emergent behavior through mixing and matching components on entities.