Lớp trừu tượng và mức độ cảm ứng là những khái niệm riêng biệt. Trừu tượng là sự tổng hợp và đặt tên có ý nghĩa của một số yếu tố, chẳng hạn như các phần dữ liệu hoặc hướng dẫn chương trình, ví dụ như khái niệm về một cuộc gọi tệp hoặc phương thức, trong khi đó, việc tách rời các thực thể để tạo thuận lợi cho việc hoãn thực hiện mối quan hệ của chúng, ví dụ, việc sử dụng JNDI để phân tách nhận dạng tài nguyên trong một chương trình khỏi tài nguyên thực tế mà cuối cùng có thể được cung cấp bởi một thùng chứa ứng dụng.
Thường thì các khái niệm đi đôi với nhau và cái nào áp dụng cho một cấu trúc cụ thể phụ thuộc vào việc tập thể dục hoặc thảo luận đang diễn ra. Chẳng hạn, bản chất trừu tượng của một giao diện rất quan trọng khi học hoặc ghi lại API; thuộc tính của sự gián tiếp rất quan trọng khi thêm khả năng mở rộng hoặc tạo các thử nghiệm cho một ứng dụng.
Một lớp trừu tượng là sự tổng hợp của trừu tượng hóa và mang lại cho chúng tính toàn vẹn về mặt khái niệm và tính nhất quán của việc sử dụng. CreatProcess là tên API win32 cho một nhóm mã xây dựng và thực thi một quy trình. "Tên" rất có ý nghĩa đối với bối cảnh này bởi vì nếu chúng ta gọi hàm này là một cái gì đó giống như DoAllocMemThenMakeEnvThenFindEntryPoint ... thì nó thực sự sẽ không trừu tượng lắm. Một lớp như API Win32 cung cấp một rào cản mà qua đó một lập trình viên có thể được khuyên không nên mạo hiểm. Nó loại bỏ sự phức tạp khỏi quan điểm của người gọi với chi phí giảm công suất (tính linh hoạt, hiệu suất, v.v.). Sự đánh đổi này được nhấn mạnh bằng thảo luận thường xuyên về trừu tượng bị rò rỉ: chúng ta vẫn có thể cần thực hiện các cuộc gọi SQL trực tiếp khi sử dụng Hibernate hoặc thực hiện các cuộc gọi Win32 khi sử dụng .NET.
Liên quan đến vấn đề gián tiếp, hầu hết các chương trình không tầm thường đều hoạt động với một số hình thức xác định mã hóa người dùng, chứng kiến phần INPUT-OUTPUT của COBOL từ trước hòm. Khi truy cập vào một tài nguyên như cơ sở dữ liệu, chúng ta có thể thấy việc nhúng chuỗi kết nối JDBC trong mã dưới dạng không xác định cấp 0, kết nối JNDI (ủy quyền lựa chọn tài nguyên cho vùng chứa ứng dụng) như Cấp 1 và một số Spring xây dựng ánh xạ định danh JNDI của ứng dụng cho một trong nhiều tài nguyên bộ chứa là Cấp 2. Nhiều cấp cho phép một số bên ngoài mối quan hệ (trong trường hợp này là mối quan hệ giữa thực thi mã và cơ sở dữ liệu) để thao tác mối quan hệ đó. Điều này áp dụng như nhau cho các thành phần chương trình nội bộ như giao diện và sự kiện.
Chúng tôi thấy rằng, bất kể phẩm chất nào khác của họ, sự trừu tượng làm giảm sự phức tạp trong khi sự gián tiếp làm tăng nó. Trừu tượng làm giảm sức mạnh trong khi sự gián tiếp làm tăng nó. Cảm ứng có thể được sử dụng để khôi phục sức mạnh của sự trừu tượng bằng cách cho phép hành vi mặc định bị ghi đè bởi các cuộc gọi lại tùy chỉnh.