Tôi muốn nói rằng blog của Noel Llopis có lẽ là hướng dẫn tốt nhất cho sự kết hợp giữa lập trình hướng đối tượng và thiết kế hướng dữ liệu. Anh ta là một trong những người khởi xướng thuật ngữ DOD, là một lập trình viên C ++ mạnh mẽ và đã viết rất nhiều về phong cách của anh ta và cách anh ta tận dụng các tính năng OO của C ++.
Tôi đoán nếu tôi gọi ra các yếu tố chính của việc kết hợp chúng, theo Noel:
- Sử dụng POD và các chức năng không phải thành viên, không phải bạn bè càng nhiều càng tốt. Các chức năng không phải thành viên, không phải bạn bè cải thiện việc đóng gói và là một phần quan trọng của định hướng dữ liệu vì chúng giữ dữ liệu, dữ liệu.
- Tránh lưu trữ trạng thái "tạm thời" trên các đối tượng của bạn. Trạng thái tạm thời làm tắc nghẽn dữ liệu của bạn. Nếu bạn cần lưu trữ một cái gì đó (ví dụ về hiệu năng) thì nó thuộc về một lớp mới, với các hàm không phải là thành viên không liên kết giữa hai loại, không phải là mối quan hệ giữa-và cũng không có.
- Tránh các đối tượng có thể ở trạng thái A hoặc trạng thái B. Thích chuyển đổi giữa hai đối tượng, một trong số đó là A và một trong số đó là B.
- Tránh đa hình, tránh các chức năng ảo, tránh các mẫu, tránh bất cứ điều gì làm cho dữ liệu của bạn có sự xuất hiện cú pháp của sự giống nhau hơn là sự giống nhau thực tế .
Một tên tuổi lớn khác trong tuyên truyền của Bộ Quốc phòng ngay bây giờ là Mike Acton của Insomniac, nhưng đọc những gì anh ấy viết tôi sẽ nói rằng anh ấy không thực sự ủng hộ OO (hoặc chống OO, miễn là nó vẫn hướng đến dữ liệu).