구체화가 아닌 추상화에 의존해야한다.
Se fier à des abstractions, pas à des concrétisations.
즉, 구현클래스(구현체)가 아니라 인터페이스(역활)에 의존해야한다.
Autrement dit, cela devrait dépendre
de l'interface (rôle)
et non de la classe d'implémentation (concrétisations).
연극을 예로들면,
Par exemple, "Théâtre",
배역 (인터페이스) - 고수준
role (Interface) - high level
배우(구현체) - 저수준
Acteur (implementation) - low level
변수에 구상클래스의 레퍼런스 또는 포인터를 저장하지않는다.
(Ne pas stocker la référence ou le pointeur de la classe d'implementation dans une variable de l'interface.)
구상클래스에서 유도된 클래스를 만들지 않는다.
(Ne pas créer de classes dérivées de classes d'implementation.)