What software design principle do Blueprint Interfaces support by letting unrelated classes share a callable contract without class inheritance?
-
A
Programming to an interface enabling polymorphism without coupling to concrete classes
-
B
Single Responsibility Principle by limiting each Blueprint to one purpose
-
C
Dependency Injection by passing interfaces as constructor arguments
-
D
Decorator Pattern by adding behavior to existing classes at runtime