phương pháp Bảng theo hướng như đã đề cập bởi Bill Gates trên Vista thương mại trên http://www.youtube.com/watch?v=gBWPf1BWtkwPhương pháp Bảng-Driven như thế nào
Trả lời
phương pháp Bảng điều khiển là gì được chương trình cho phép bạn tìm kiếm thông tin trong một bảng thay vì sử dụng các câu lệnh logic (ví dụ: case, if). Trong các trường hợp đơn giản, việc sử dụng các câu lệnh logic nhanh hơn và dễ dàng hơn, nhưng khi chuỗi logic trở nên phức tạp hơn, mã điều khiển bảng đơn giản hơn logic phức tạp, dễ sửa đổi và hiệu quả hơn.
Một phương pháp bảng điều khiển khá đơn giản. Sử dụng cấu trúc dữ liệu thay vì câu lệnh if-then để điều khiển logic chương trình. Ví dụ: nếu bạn đang xử lý hai loại bản ghi (tv so với cáp), bạn có thể thực hiện việc này:
hash[tv] = process_tv_records
hash[cable] = process_cable_records
Ở một số ngôn ngữ, như Ruby hoặc Perl, kỹ thuật này rất đơn giản. Trong Java, bạn cần sử dụng Reflection để tìm các phương thức xử lý.
Nếu bạn muốn tìm hiểu về các bảng quyết định, hãy đầu tư vào khung kiểm tra Fitnesse tại http://fitnesse.org/.
Video được tham chiếu có Bill Gates đọc từ sách Code Complete của Steve McConnell. Jeff Atwood mentioned this in his blog (the YouTube links match up).
Từ Code Complete, 2nd edition:
Một phương pháp bảng điều khiển là một chương trình cho phép bạn tìm kiếm thông tin trong một bảng hơn là sử dụng báo cáo logic (nếu và trường hợp) để tìm ra.
McConnell sử dụng mảng làm "bảng" trong ví dụ của mình, nhưng tôi nghĩ khái niệm có thể được áp dụng cho bảng cơ sở dữ liệu hoặc bất kỳ thứ gì khác giống bảng.
Khái niệm này thực sự được giải thích rõ nhất thông qua ví dụ.
Giả sử bạn đang điều hành một nhà hàng và có số chỗ ngồi khác nhau cho mỗi số bảng.
Logic của bạn để có được số ghế cho một bảng đặc biệt có thể trông giống như
if table number == 1
table has 4 seats
else if table number == 2
table has 8 seats
. . .
vì vậy nếu bạn có 50 bảng, bạn sẽ có 100 dòng mã chỉ để xác định số lượng ghế.
Sử dụng phương pháp bảng điều khiển, bạn có thể làm cho một mảng với chỉ số đại diện cho số bảng và các giá trị thể hiện số lượng chỗ ngồi, nên logic của bạn thay vào đó sẽ giống như thế
tables [] = {4, 8, 2, 4, ...}
table seats = tables[table number]
đó là đơn giản hơn, ngắn hơn và dễ bảo trì hơn.
- 1. Phương pháp mở rộng được biên dịch như thế nào?
- 2. Phương pháp với Predicate như Parameter
- 3. Phương pháp C# In()? (như Sql)
- 4. Có phương pháp giống như sizeof nào trong Java không?
- 5. Python phương pháp tĩnh - làm thế nào để gọi một phương thức từ phương pháp khác
- 6. phương pháp captcha thay thế
- 7. MSTest xác định thứ tự để chạy các phương pháp thử nghiệm như thế nào?
- 8. MapReduce là phương pháp tốt để phân tích nhật ký máy chủ http như thế nào?
- 9. Làm thế nào để vượt qua một phương pháp học như một tham số trong Scala
- 10. Làm thế nào để sử dụng một phương pháp đối tượng như một hàm callback
- 11. Làm thế nào để thay đổi tự trong một khối như phương pháp instance_eval làm gì?
- 12. Tomcat duy trì tính toàn vẹn phiên làm việc như thế nào? Phương pháp
- 13. Phương pháp này đếm số lượng 1 trong biểu diễn nhị phân như thế nào?
- 14. JVM sử dụng "Phương pháp chính" để bắt đầu một chương trình Java như thế nào?
- 15. Làm thế nào để gọi một Phương pháp Mục tiêu-C từ Phương pháp C?
- 16. Chú thích phương thức Java hoạt động kết hợp với phương pháp ghi đè như thế nào?
- 17. Làm thế nào để quá tải một phương pháp ảo khác với phương pháp phi ảo?
- 18. Làm thế nào để gọi một phương pháp không const từ một phương pháp const?
- 19. Phương thức phản đối này hoạt động như thế nào?
- 20. ActionMailer phương pháp dụ được sử dụng như phương pháp lớp
- 21. C# giống như các phương pháp mở rộng trong PHP?
- 22. C#: Bạn kiểm tra phương thức IEnumerable.GetEnumerator() như thế nào?
- 23. Phương pháp bọc một phương pháp
- 24. PHP - mở rộng phương pháp như mở rộng một lớp
- 25. C#: Làm thế nào để sử dụng phương pháp Enumerable.Aggregate
- 26. Django Apps nên gói phương tiện tĩnh như thế nào?
- 27. C#, triển khai 'tóm tắt tĩnh' như các phương pháp
- 28. Bạn sẽ phân tích cú pháp Markdown như thế nào?
- 29. Cú pháp "này" hoạt động như thế nào?
- 30. Cú pháp `new Class [] {}` hoạt động như thế nào?
Video riêng tư. Có bản sao nào đó không? – stian