Nói rằng tôi có một loạt các vận động viên mà tôi cần để tìm ra người chạy cao nhất, người chạy nhanh nhất và người chạy nhẹ nhất. Có vẻ như giải pháp dễ đọc nhất sẽ là:
runners = getRunners();
tallestRunner = getTallestRunner(runners);
fastestRunner = getFastestRunner(runners);
lightestRunner = getLightestRunner(runners);
.. ở mọi nơi, mỗi chức năng lặp lại qua các vận động viên và theo dõi chiều cao lớn nhất, tốc độ lớn nhất và trọng lượng thấp nhất. Lặp lại qua mảng ba lần, tuy nhiên, dường như không phải là một ý tưởng rất tốt. Thay vào đó sẽ tốt hơn để làm:
int greatestHeght, greatestSpeed, leastWeight;
Runner tallestRunner, fastestRunner, lightestRunner;
for(runner in runners){
if(runner.height > greatestHeight) { greatestHeight = runner.height; tallestRunner = runner; }
if(runner.speed > ...
}
Mặc dù điều này không quá khó đọc, nhưng nó có thể trở nên lộn xộn khi có nhiều logic hơn cho mỗi phần thông tin được trích xuất trong lần lặp.
Mặt bằng ở đây là gì? Làm thế nào tôi có thể chỉ sử dụng một lần lặp duy nhất trong khi vẫn giữ mã được chia thành các đơn vị logic?