Nói chung, tôi đồng ý rằng việc tách giao diện khỏi việc triển khai là một điều tốt và sẽ giúp mã của bạn dễ bảo trì hơn.
Tuy nhiên, có những ngoại lệ mà bạn phải xem xét. Việc truy cập các đối tượng thông qua các giao diện sẽ thêm một lớp hướng dẫn bổ sung sẽ làm cho mã của bạn chậm hơn.
Để quan tâm, tôi đã chạy thử nghiệm tạo ra mười tỷ lượt truy cập tuần tự vào ArrayList có độ dài 1 triệu. Trên chiếc MacBook 2,4Ghz của tôi, việc truy cập ArrayList thông qua giao diện List mất trung bình 2,10 giây, khi khai báo kiểu ArrayList mất trung bình 1,67 giây.
Nếu bạn đang làm việc với danh sách lớn, nằm sâu bên trong một vòng lặp bên trong hoặc hàm thường được gọi, thì đây là điều cần xem xét.