Code against interfaces, not concrete implementations, for flexibility and scalability.