Các mẫu hình định hướng đối tượng conCó nhiều phong cách lập trình hướng đối tượng. Sự khác nhau giữa các phong cách này là tùy theo việc các
ngôn ngữ lập trình chú trọng vào khía cạnh nào của sự thuận lợi của định hướng đối tượng và vào việc kết hợp các cấu trúc trong các phương cách khác nhau.
OOP với các ngôn ngữ cấu trúcTrong các ngôn ngữ cấu trúc, OOP thường xuất hiện như là một dạng mà ở đó các kiểu dữ liệu được mở rộng để hành xử giống như là một kiểu của một đối tượng trong OOP, hoàn toàn tương tự cho một
kiểu dữ liệu trừu tượng với sự mở rộng như là sự kế thừa. Mỗi phương pháp thực ra là một chương trình con mà, một cách cú pháp, giới hạn nội trong một lớp.
Các mô hình nguyên mẫu cơ bảnKhác với cách sử dụng lớp,
nguyên mẫu là một mô hình khác ít được biết đến hơn, nó có ý nghĩa đạt tới việc chia sẻ ứng xử theo định hướng đối tượng. Sau khi đối tượng được định nghĩa, một đối tượng khác tương tự sẽ được định nghĩa từ đối tượng ban đầu. Ngôn ngữ nguyên mẫu cơ bản được biết đến nhiều nhất là
JavaScript mà đây là một sự thiết lập của
ECMAScript.
Self, một ngôn ngữ lập trình được phát triển bởi
Sun Microsystems cũng là một thí dụ của ngôn ngữ dùng nguyên mẫu cho việc chia sẻ ứng xử chứ không dùng sự phân lớp.
NewtonScript,
Act1,
Io và
Delegation là các thí dụ khác. Đặc biệt,
Hybrid và
Exemplars sử dụng cả hai mô hình nguyên mẫu và phân lớp. Trong các hệ thống nguyên mẫu, các đối tượng tự chúng là các khuôn thức (
template), trong khi các hệ thống phân lớp dùng các lớp như là các khuôn thức cho các đối tượng.
Các tiếp cận kiểu phân lớp thì chiếm đa số trong OOP mà nhiều người sẽ định nghĩa các đối tượng như là có tính chất đóng mà việc chia sẻ dữ liệu xảy ra bởi sự phân lớp và bởi tính kế thừa. Mặc dù vậy, khái niệm tổng quát hơn "chia sẻ ứng xử" được công nhận như là các kỹ thuật thay thế (như trường hợp nguyên mẫu).
(Xem thêm
Lập trình nguyên mẫu cơ bản)
Mô hình đối tượng cơ bảnLập trình hướng đối tượng cơ bản là trung tâm về việc tạo thành của các đối tượng và các tương tác của chúng, nhưng có thể sẽ thiếu đi một số chức năng quan trọng của mẫu hình định hướng đối tượng lớp cơ bản như là tính kế thừa. Những hệ thống đối tượng cơ bản như vậy thường không được xem như là định hướng đối tượng vì tính kế thừa một cách điển hình là một yếu tố cốt lõi của OOP.
Thí dụ của trường hợp này là ngôn ngữ
Visual Basic với các phiên bản 6.0 hay nhỏ hơn.
Định nghĩa chuẩnĐã có nhiều nỗ lực để chuẩn hóa các khái niệm được dùng trong lập trình định hướng đối tượng. Những khái niệm và các kết cấu sau đây đã được suy diễn như là các khái niệm của OOP:
Các nỗ lực tìm một định nghĩa thống nhất hay lý thuyết đứng sau các đối tượng đã không mấy thành công và thường bị phân hóa nặng. Thí dụ, một số định nghĩa thì tập trung lên các hoạt động tinh thần trong khi số khác lại ngả về việc cấu trúc chương trình. Một trong các định nghĩa đơn giản hơn cho rằng OOP là một hành xử của việc sử dụng các biểu đồ cấu trúc dữ liệu hay sử dụng các dãy mà có thể chứa các hàm và các con trỏ sang các biểu đồ khác. Sự kế thừa có thể tiến hành bởi nhân bản các biểu đồ này (mà đôi khi gọi là "nguyên bản hóa").
OOP trong văn lệnhTrong những năm gần đây, lập trình đối tượng cơ bản đã đặc biệt trở nên phổ biến trong các
ngôn ngữ lập trình văn lệnh vì chúng có tính trừu tượng, tính đóng, khả năng tái sử dụng, và dễ sử dụng (trong khi khả năng kế thừa trong các ngôn ngữ này vẫn còn là các câu hỏi chưa có câu trả lời).
Smalltalk có thể là ngôn ngữ đầu tiên có kiểu như trên,
Python và
Ruby là các ngôn ngữ tương đối mới và được xây dựng từ đầu với ý tưởng OOP, trong khi đó ngôn ngữ văn lệnh
Perl đã đang được từ từ thêm vào các chức năng mới về định hướng đối tượng kể từ phiên bản 5. Khả năng của các đối tượng để thể hiện "thế giới thực" là một lý do cho sự phổ biến của JavaScript và ECMAScript, mà được bàn cãi là thích hợp để đại diện cho
DOM của các hồ sơ
HTML và
XML trên
Internet.