OOP không quan trọng vì bản thân nó, nhưng vì những gì nó mang theo. Một cái gì đó liên quan đến khả năng trừu tượng hóa và cô lập, những thứ nhóm lại kết thúc chỉ phơi bày những phần được yêu cầu để tương tác với nhau.
Đây là một kỹ thuật kỹ thuật phổ biến được gọi là "mô đun hóa", cho phép tạo ra các hệ thống phức tạp dưới dạng tổng hợp của các hệ thống đơn giản hơn, không cần quan tâm đến từng chi tiết ở mức cao và yêu cầu các thành phần phải có thể thay thế được, ngay cả khi không có chúng chính xác tương tự.
Những "khái niệm kỹ thuật" đó đã được cố gắng duy trì để phát triển phần mềm từ khi chính sản phẩm phần mềm trở nên lớn hơn "khả năng của nhà phát triển duy nhất", do đó đòi hỏi một cách để khiến các nhà phát triển làm việc trên các phần độc lập và để những phần đó làm tương tác với nhau.
Điều đó nói rằng, những nguyên tắc đó không nhất thiết chỉ được tìm thấy trong OOP (lý thuyết tính toán là hợp lệ, có những phương pháp khả thi vô hạn để đi đến những kết quả đó).
OOP chỉ đơn giản là một nỗ lực thành công để kết hợp những điều đó lại với nhau, đưa ra những thuật ngữ chung đó (như mô-đun, đóng gói, thay thế) các định nghĩa chính xác hơn và khái niệm hóa công phu trên các định nghĩa (mẫu) có thể phù hợp với ngôn ngữ lập trình.
Trước tiên, hãy nghĩ đến OOP không phải là một " tính năng ngôn ngữ " mà là một " từ vựng thông thường " khiến các kỹ sư phần mềm tiếp cận với thiết kế phần mềm.
Thực tế là một ngôn ngữ nhất định có hoặc không nguyên thủy trực tiếp thực thi từ vựng đó đảm bảo - ví dụ - rằng "viên nang" không được mở ra một cách vô tình bởi ai không được phép làm đó là khía cạnh thứ yếu của thiết kế OOP. Đó là lý do tại sao ngay cả dự án C lớn thường được "quản lý" OOP, ngay cả khi chính ngôn ngữ đó không hỗ trợ trực tiếp cho điều đó.
Lợi thế của tất cả những gì không thể nhận ra cho đến khi quy mô dự án nằm trong khả năng của nhà phát triển duy nhất trong việc hiểu và theo dõi mọi thứ anh ta làm (thực tế, trong tình huống đó, nó thậm chí có thể được xem là "trên cao") hoặc vào một nhóm nhỏ phát triển một cái gì đó trong một khoảng thời gian ngắn. Và đó là lý do chính khiến những người đàn em nghiên cứu OOP về "tính năng ngôn ngữ" thường hiểu sai rằng nó tạo ra mã được thiết kế xấu.
Cách OOP phù hợp với các ngôn ngữ phụ thuộc vào cách các nhà thiết kế ngôn ngữ diễn giải nguyên tắc OOP trong cấu trúc của chính họ.
Vì vậy, "đóng gói" trong C ++ trở thành "thành viên riêng" (và "viên nang" trở thành một lớp), "thay thế" trở thành chức năng ảo ghi đè hoặc tham số mẫu / chuyên môn hóa, v.v., trong khi trong D, một viên nang là một "mô-đun" (và thay thế đi thông qua các lớp, v.v.), do đó làm cho mô hình hoặc mẫu nhất định có sẵn trực tiếp trong một ngôn ngữ nhất định và không phải trong một ngôn ngữ khác và vv.
Những gì nhà tuyển dụng tìm kiếm khi đặt câu hỏi OOP chỉ là kiểm tra khả năng của bạn để trừu tượng hóa và che giấu thiết kế phần mềm cho các dự án lớn và phát triển trong tương lai. OOP, đối với họ chỉ là một "từ điển" mà họ cho rằng cả bạn và họ đều biết để bạn có thể nói về những điều chung chung khác hoặc cụ thể hóa thành một triển khai cụ thể.