Tôi có một lập trình viên khác, tôi đang cố giải thích tại sao thành phần giao diện người dùng cũng không phải là cấu trúc dữ liệu. Ví dụ:Làm thế nào để giải thích cho ai đó rằng một cấu trúc dữ liệu không nên tự vẽ, giải thích sự tách biệt các mối quan tâm?
Ví dụ: giả sử bạn nhận cấu trúc dữ liệu chứa tập bản ghi từ "cơ sở dữ liệu" và bạn muốn hiển thị bộ bản ghi đó trong thành phần giao diện người dùng trong ứng dụng của mình.
Theo lập trình viên này (người sẽ vẫn không tên, anh ấy trẻ và tôi đang dạy anh ấy ...), chúng ta nên phân lớp cấu trúc dữ liệu thành lớp sẽ vẽ thành phần giao diện người dùng trong ứng dụng của chúng tôi !!!! !!
Và do đó theo logic này, bộ bản ghi phải quản lý bản vẽ giao diện người dùng.
****** Trưởng Bàn *****
Tôi biết rằng yêu cầu một kỷ lục thiết lập để vẽ chính nó là sai, bởi vì, nếu bạn muốn làm cho cùng một cấu trúc dữ liệu trên hơn một loại thành phần trên giao diện người dùng của bạn, bạn sẽ có một mớ hỗn độn thực sự trên tay của bạn; bạn sẽ cần mở rộng thêm một lớp khác cho mỗi thành phần UI mà bạn render từ lớp cơ sở của tập bản ghi của bạn;
Tôi biết rõ về "độ sạch" của mẫu MVC (và điều đó thực sự có nghĩa là bạn không nhầm lẫn dữ liệu của mình (Mô hình) với giao diện người dùng (chế độ xem) hoặc hành động diễn ra trên dữ liệu (Bộ điều khiển nhiều hơn hoặc ít hơn ... không thực sự là API thực sự xử lý điều đó ... và Bộ điều khiển chỉ nên thực hiện một vài cuộc gọi đến nó vì nó có thể, cho biết chế độ xem nào sẽ hiển thị)) Nhưng nó chắc chắn rất nhiều sạch hơn so với sử dụng cấu trúc dữ liệu để hiển thị các thành phần giao diện người dùng!
Có lời khuyên nào khác mà tôi có thể gửi theo cách khác với ví dụ trên không? Tôi hiểu rằng khi bạn lần đầu tiên học OOP bạn đi qua "một sân khấu", nơi bạn chỉ muốn mở rộng mọi thứ.
Tiếp theo là một giai đoạn khi bạn cho rằng Mẫu thiết kế là giải pháp cho mỗi vấn đề duy nhất ... không hoàn toàn chính xác ... thanks Jeff.
Có cách nào để tôi có thể nhẹ nhàng di chuyển đứa trẻ này đi đúng hướng không? Bạn có thêm bất kỳ ví dụ nào có thể giúp giải thích quan điểm của tôi với anh ấy không?
Và theo chức năng bạn có nghĩa là tương tác với dữ liệu với giao diện người dùng và không hoạt động; chỉ là một vùng chứa cho dữ liệu, như tập hợp kết quả ... đúng không? – leeand00
Chức năng như trong "cái gì đó làm", không hoạt động như trong "cái gì đó trông như thế nào". Trong MVC, "cái gì đó làm" là Model, và "cái gì đó trông" là hình dung của mô hình, View. –