Tôi có một lớp trừu tượng có tên là Node
. Nó chứa một hàm tạo lấy một hàng từ cơ sở dữ liệu của tôi và tạo ra các thông tin cơ bản. Tất cả các mảnh của nội dung trên trang web của tôi mở rộng lớp này - Person
, Event
, Project
vvĐiều gì sẽ là mẫu thiết kế thích hợp để sử dụng trong cấu trúc lớp PHP này, không có nhiều thừa kế?
3 của các lớp này mở rộng là đặc biệt - khi chúng được xây dựng, ngoài việc kéo giá trị từ cơ sở dữ liệu, họ cũng cần phải truy vấn một dịch vụ web; nếu dịch vụ web cung cấp các giá trị khác với các giá trị được cung cấp trong DB, chúng cần lưu vào DB.
Trong ngôn ngữ có khả năng đa thừa kế, điều này sẽ khá đơn giản; bất kỳ một trong các lớp này sẽ mở rộng cả hai Node
và APIData
hoặc một thứ gì đó tương tự. Không có MI, tôi không chắc chắn làm thế nào để xử lý điều này. Sử dụng giao diện sẽ không hữu ích, vì điều đó không cung cấp triển khai cụ thể.
Mẫu trang trí đôi khi được đề xuất như là một thay thế cho một số tính năng của MI, nhưng tôi không có đủ kinh nghiệm để xác định xem đây có phải là lựa chọn thích hợp hay không. Bất kỳ đề xuất?
IMO: PHP không hỗ trợ đa kế thừa là FEATURE. P.S. Kiểm tra mẫu thiết kế 'Chiến lược' http://www.dofactory.com/Patterns/PatternStrategy.aspx –
Rất ít ngôn ngữ hỗ trợ đa kế thừa. Các mẫu thiết kế bình thường dựa trên các giao diện và ủy nhiệm làm việc tốt trong PHP. –