Vì nó nói trong the article, nó là cần thiết để gọi phương thức siêu đó là antipattern, tức là lớp siêu "dự đoán" bạn ghi đè phương pháp để làm cho chức năng hoàn chỉnh - nhưng nó làm như vậy mà không làm cho kỳ vọng này rõ ràng. Và nó cũng hy vọng bạn gọi thực hiện siêu. Cả hai đều được yêu cầu để chương trình hoạt động.
Đây là một mẫu đơn, vì mục đích của lập trình viên không thể được suy ra từ mã. Nếu đồng nghiệp của bạn quyết định làm việc trên nó, họ sẽ không biết những gì bạn mong đợi lớp học để làm, và do đó có khả năng gặp phải vấn đề và/hoặc kích thích.
Vì vậy, nếu bạn mong đợi một số phần của phương pháp bị ghi đè, nhưng những thứ khác cần phải giữ nguyên, bạn nên sử dụng template method pattern, nơi bạn giữ tất cả những thứ không được thay thế trong một (riêng tư) , sau đó gọi một số khác - hoàn toàn riêng biệt -, phải được triển khai để chương trình hoạt động (bằng một số ngôn ngữ, thậm chí nó sẽ không biên dịch). Bằng cách đó, bạn chắc chắn rằng những điều quan trọng vẫn là nơi họ phải làm, và bất cứ ai mở rộng lớp học sẽ biết chính xác phải làm gì, trong khi vẫn còn không biết gì về các chi tiết triển khai khác.
Mục tiêu-C không có phương pháp trừu tượng hoặc ảo, nhưng bạn có thể đạt được hiệu quả tương tự bằng cách tăng rõ ràng ngoại lệ nếu phương thức siêu được gọi. Bằng cách đó, nếu đồng nghiệp của bạn quên ghi đè phương thức, chương trình sẽ gặp sự cố - và chương trình sẽ gặp sự cố với thông báo lỗi mà họ sẽ hiểu và điều đó sẽ giúp họ hiểu và khắc phục sự cố nhanh hơn và dễ dàng hơn hành vi không có giải thích, do chức năng không được hoàn thành.
Bạn có thể cung cấp nguồn không? gọi siêu là chỉ là một phần của lập trình hướng đối tượng, tôi không biết tại sao điều này nên là một mô hình chống .. – NSAddict
Liên kết đến bài viết wikipedia có liên quan? (Hãy nhớ rằng Wikipedia được cộng tác chỉnh sửa, chúng _could_ là sai). – driis
Điều này thực sự buồn là câu hỏi này được đánh dấu là "không mang tính xây dựng". Tôi thấy nó rất quan trọng – Kuba