Các mẫu không phải là các khối xây dựng - vì vậy tôi không nên xây dựng một ứng dụng trên các mẫu MVC / MVP?


9

Tôi đã đọc này trang về các mẫu thiết kế, và làm thế nào bạn nên đối xử với họ khi viết mã của bạn. Theo hiểu biết của tôi, như tiêu đề trong liên kết nêu:

Mô hình không phải là khối xây dựng.

Nếu tôi hiểu chính xác, điều này có nghĩa là không sử dụng một mẫu thiết kế cho đến khi nó có ý nghĩa để làm như vậy, đúng không? Đừng bắt đầu nói rằng bạn sẽ sử dụng Mẫu chiến lược, đợi cho đến khi bạn viết một số mã và nếu sử dụng Mẫu chiến lược có ý nghĩa cho thiết kế của bạn, thì hãy sử dụng nó.

Tôi có xử lý mẫu MCV / MVP theo cách tương tự khi tôi tạo các ứng dụng GUI không? Từ các liên kết tương ứng, nó nói rằng đó là một mô hình kiến ​​trúc.

Giả sử nếu tôi tạo một ứng dụng GUI và tôi không sử dụng mẫu MCV / MVP, nhưng mã của tôi sạch, dễ đọc và có thể bảo trì, thì đó vẫn là một mã mùi / thiết kế xấu mà tôi đã không sử dụng mẫu MCV / MVP ?

Câu trả lời:


18

Nếu tôi hiểu chính xác, điều này có nghĩa là không sử dụng một mẫu thiết kế cho đến khi nó có ý nghĩa để làm như vậy, đúng không?

Đúng.

Đừng bắt đầu nói rằng bạn sẽ sử dụng Mẫu chiến lược, đợi cho đến khi bạn viết một số mã và nếu sử dụng Mẫu chiến lược có ý nghĩa cho thiết kế của bạn, thì hãy sử dụng nó.

Đúng. Về mặt kỹ thuật, bạn có thể nhận ra rằng mẫu chiến lược phù hợp trước khi bạn viết bất kỳ mã nào, nhưng đó là do bạn đã suy nghĩ về vấn đề thực tế và thiết kế một giải pháp cho vấn đề đó, mà tôi cho là ý của bạn.

Tôi có xử lý mẫu MCV / MVP theo cách tương tự khi tôi tạo các ứng dụng GUI không? Từ các liên kết tương ứng, nó nói rằng đó là một mô hình kiến ​​trúc.

Có, MVC / MVP / etc là các mẫu kiến ​​trúc. Theo một nghĩa nào đó, điều đó không tạo ra sự khác biệt bởi vì bạn vẫn chỉ nên sử dụng MVC / MVP / etc khi chúng có ý nghĩa; khi nó phù hợp với vấn đề thực tế mà bạn đang cố gắng giải quyết. Trường hợp nào tạo ra sự khác biệt là bởi vì nó áp dụng ở mức cao hơn nhiều so với mẫu Chiến lược, thông thường bạn sẽ biết liệu nó có hợp lý hay không và quyết định liệu bạn sẽ sử dụng nó như một phần của công việc thiết kế của bạn, trước khi viết rất nhiều mã.

Ngoài ra, hãy nhớ rằng "MVC / MVP" không phải là một mẫu duy nhất, mà là một nhóm rất lớn các mẫu liên quan và không có sự đồng thuận nào về chính xác được tính là "MVC" hoặc "MVP" hoặc "MVVM" hoặc phần còn lại của súp bảng chữ cái liên quan.

Giả sử nếu tôi tạo một ứng dụng GUI và tôi không sử dụng mẫu MCV / MVP, nhưng mã của tôi sạch, dễ đọc và có thể bảo trì, thì đó vẫn là một mã mùi / thiết kế xấu mà tôi đã không sử dụng mẫu MCV / MVP ?

Hoàn toàn không, bởi vì MVC / MVP / etc không phù hợp với mọi ứng dụng GUI. Ví dụ, một số GUI có thể đơn giản đến mức hoàn toàn quá mức hoặc một số GUI có thể không có bất kỳ trạng thái liên tục nào để đưa vào một "mô hình", v.v ... Có những lý do chính đáng tại sao họ mẫu đó rất phổ biến, nhưng chúng không phải là cách duy nhất để viết phần mềm GUI tốt.

Ngoài ra, "mùi mã" thường có nghĩa là một cái gì đó về một đoạn mã cụ thể có thể là triệu chứng của một vấn đề lớn hơn. Nếu tất cả các mã của bạn là "sạch, dễ đọc và có thể bảo trì", mà không có bất kỳ ngoại lệ nào, thì gần như theo định nghĩa, bạn không có bất kỳ mã nào có mùi (ngoại trừ một vài mã "dương tính giả" không chỉ ra bất kỳ vấn đề thực sự nào ).

Vì vậy, để trả lời tiêu đề cho câu hỏi của bạn: "Cách xử lý Mẫu MVC / MVP?", Tôi sẽ nói: Hãy đọc về lý do tại sao các mẫu đó rất phổ biến, tức là những vấn đề họ đang cố gắng giải quyết, để trong tương lai bạn có thể biết liệu vấn đề mới nhất của bạn có thể được giải quyết bằng các mẫu đó hay không.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.