Tôi sẽ trả lời câu hỏi của bạn bằng một câu hỏi; Khi bạn lái xe đi làm sáng nay (thực tế tôi sẽ cho rằng bạn đã làm như vậy), bạn có quan tâm chính xác cách động cơ mở van để cho vào hỗn hợp nhiên liệu không khí, và sau đó đốt cháy chúng không? Không. Bạn không quan tâm làm thế nào động cơ xe của bạn hoạt động khi bạn đang lái xe trên đường. Bạn quan tâm rằng nó không hoạt động.
Giả sử, một ngày, chiếc xe của bạn không hoạt động. Không bắt đầu, ném một cây gậy, phá vỡ một vành đai, không thể giải thích được cày vào hàng rào bê tông đó mà không có lỗi của bạn trong khi bạn đang bận nhắn tin. Bây giờ, bạn cần một chiếc xe mới (ít nhất là tạm thời). Bạn có quan tâm chính xác làm thế nào chiếc xe mới này hoạt động? Không. Điều bạn quan tâm đầu tiên là nó hoạt động và thứ hai là bạn có thể sử dụng cùng kiến thức và kỹ năng mà bạn đã sử dụng để lái chiếc xe cũ của mình để lái chiếc mới. Lý tưởng nhất, nó sẽ xuất hiện với bạn rằng không có thay đổi trong chiếc xe bạn đang lái. Trên thực tế, cách thức hoạt động của chiếc xe mới này sẽ mang đến cho bạn càng ít "bất ngờ" nhất có thể.
Những nguyên lý cơ bản này là nguyên tắc cốt lõi đằng sau sự đóng gói và trừu tượng hóa. Kiến thức về cách một đối tượng làm những gì nó không nên là điều cần thiết để sử dụng nó để làm những gì nó làm. Ngay cả trong lập trình máy tính, các chi tiết về đường dẫn điện trong CPU chạy chương trình của bạn được tóm tắt đằng sau ít nhất nửa tá các hướng dẫn I / O, trình điều khiển, phần mềm hệ điều hành và thời gian chạy. Nhiều kỹ sư phần mềm rất thành công viết mã hoàn toàn tốt mà không một lần lo lắng về kiến trúc phần cứng chính xác, hoặc thậm chí xây dựng hệ điều hành, sẽ chạy nó. Bao gồm cả tôi.
Đóng gói / ẩn thông tin cho phép tâm lý "không quan tâm nó như thế nào, chỉ quan tâm là nó". Đối tượng của bạn nên phơi bày những gì hữu ích cho người tiêu dùng, theo cách mà người tiêu dùng có thể dễ dàng tiêu thụ. Bây giờ, trở lại trong thế giới thực, điều này không có nghĩa là một chiếc xe không nên cung cấp cho người dùng bất kỳ thông tin nào về hoạt động bên trong, hoặc chiếc xe chỉ nên cho phép người dùng những chức năng cơ bản nhất như đánh lửa, vô lăng, và bàn đạp. Tất cả các xe đều có đồng hồ đo tốc độ và đồng hồ đo nhiên liệu, đồng hồ đo tốc độ, đèn ngốc và các phản hồi khác. Hầu như tất cả các xe ô tô cũng có công tắc cho các hệ thống con độc lập khác nhau, như đèn pha, đèn báo rẽ, radio, điều chỉnh chỗ ngồi, v.v. Một số xe cho phép một số đầu vào bí mật của người dùng, như độ nhạy của vi sai trung tâm trượt giới hạn. Trong mọi trường hợp, nếu bạn biết đủ, bạn có thể mở nó ra và thay đổi mọi thứ để làm cho nó hoạt động theo một cách hơi khác. Nhưng, trong hầu hết các trường hợp, có lẽ, chỉ là có thể, người dùng không nên trực tiếp và độc lập điều khiển máy bơm nhiên liệu từ bên trong cabin? Có lẽ, chỉ là có thể, người dùng không nên kích hoạt đèn phanh của họ mà không thực sự nhấn bàn đạp phanh?
Sự trừu tượng cho phép "điều này không giống như vậy, nhưng vì cả hai đều có thể sử dụng chúng như bất kỳ tâm lý X" nào. Nếu đối tượng của bạn kế thừa hoặc thực hiện một sự trừu tượng hóa, người tiêu dùng của bạn sẽ mong đợi việc triển khai của bạn tạo ra kết quả tương tự hoặc tương tự như các triển khai trừu tượng đã biết khác. Một chiếc Toyota Camry và Ford Fusion đều là "xe hơi". Như vậy, chúng có một bộ chức năng chung dự kiến, chẳng hạn như vô lăng. Xoay nó ngược chiều kim đồng hồ, xe đi bên trái. Xoay theo chiều kim đồng hồ, xe đi đúng. Bạn có thể lên bất kỳ chiếc xe nào ở Hoa Kỳ và mong muốn chiếc xe có vô lăng và ít nhất hai bàn đạp, bên phải là bàn đạp "xe đi" và một ở trung tâm là bàn đạp "dừng xe" .
Một hệ quả của sự trừu tượng là "lý thuyết ít ngạc nhiên nhất". Nếu bạn ngồi sau tay lái của một chiếc xe mới để lái thử, xoay vô lăng theo chiều kim đồng hồ và xe rẽ trái, bạn sẽ rất ngạc nhiên khi nói ít nhất. Bạn đã buộc tội đại lý bán lẻ POS và sẽ không thể lắng nghe bất kỳ lý do nào của anh ta tại sao hành vi mới "tốt hơn" so với những gì bạn đã sử dụng, hoặc hành vi này được "ghi lại" như thế nào hoặc " minh bạch "hệ thống kiểm soát là. Mặc dù chiếc xe mới này và tất cả những chiếc khác mà bạn lái vẫn là "xe hơi", nhưng khi lái chiếc xe này, bạn phải thay đổi một số khái niệm cơ bản về cách một chiếc xe được cho là lái để lái chiếc xe mới thành công. Đó thường là một điều xấu, và nó chỉ xảy ra khi có một lợi thế trực quan cho mô hình mới. Có lẽ việc bổ sung dây an toàn là một ví dụ tốt; 50 năm trước bạn vừa mới đi vào, nhưng bây giờ bạn phải khóa lại, lợi thế trực quan là bạn không đi qua kính chắn gió hoặc vào ghế hành khách nếu bạn gặp tai nạn. Ngay cả khi đó, các tài xế đã chống cự; nhiều chủ xe đã cắt dây an toàn ra khỏi xe cho đến khi luật pháp được thông qua bắt buộc sử dụng.