Nguyên Tắc DRY Trong Lập Trình - Hướng Dẫn Java

Views: 1.797

Nguyên tắc DRY (Don’t Repeat Yourself) là một nguyên tắc cơ bản mà mọi lập trình viên cần phải hiểu và làm theo nó. Trong bài viết này, chúng ta hãy cùng tìm hiểu về nguyên tắc này các bạn nhé!

Nguyên tắc DRY chỉ ra rằng nếu chúng ta đang muốn viết nhiều đoạn code giống nhau ở nhiều chỗ khác nhau, thay vì copy và paste đoạn code đó, chúng ta hãy đưa đoạn code đó vào một phương thức riêng sau đó gọi phương thức này từ những chỗ chúng ta cần gọi.

Áp dụng nguyên tắc này, code của chúng ta sẽ rõ ràng hơn và dễ bảo trì hơn.

Mình sẽ làm một ví dụ để các bạn hiểu rõ hơn nhé!

Giả sử mình có một đối tượng là Calculator, đối tượng này có 2 nhiệm vụ chính là tính tổng và tính trung bình cộng của 2 số a và b.

Nếu không áp dụng nguyên tắc DRY, code mình sẽ viết như sau:

Java package com.huongdanjava; public class Calculator { public int total(int a, int b) { return a + b; } public double average(int a, int b) { int sum = a + b; return sum / 2; } }
1234567891011121314 packagecom.huongdanjava; publicclassCalculator{ publicinttotal(inta,intb){returna+b;} publicdoubleaverage(inta,intb){intsum=a+b; returnsum/2;}}

Bây giờ, nếu mình muốn in ra tổng của 2 số mỗi khi thực hiện 2 phép tính trong đối tượng Calculator, mình phải sửa lại 2 phương thức này như sau:

Java package com.huongdanjava; public class Calculator { public int total(int a, int b) { int sum = a + b; System.out.println("Total=" + sum); return sum; } public double average(int a, int b) { int sum = a + b; System.out.println("Total=" + sum); return sum / 2; } }
123456789101112131415161718 packagecom.huongdanjava; publicclassCalculator{ publicinttotal(inta,intb){intsum=a+b;System.out.println("Total="+sum);returnsum;} publicdoubleaverage(inta,intb){intsum=a+b;System.out.println("Total="+sum);returnsum/2;}}

Các bạn có thể thấy là, mỗi khi muốn chỉnh sửa gì đó liên quan đến những đoạn code giống nhau, chúng ta phải chỉnh sửa từng chỗ một.

Để khắc phục điều này, mình sẽ áp dụng nguyên tắc DRY như sau:

Java package com.huongdanjava; public class Calculator { public int total(int a, int b) { return a + b; } public double average(int a, int b) { int sum = total(a, b); return sum / 2; } }
1234567891011121314 packagecom.huongdanjava; publicclassCalculator{ publicinttotal(inta,intb){returna+b;} publicdoubleaverage(inta,intb){intsum=total(a,b);returnsum/2;}}

Và giờ để in ra tổng của 2 số, chúng ta chỉ cần sửa phương thức total() là xong:

Java package com.huongdanjava; public class Calculator { public int total(int a, int b) { int sum = a + b; System.out.println("Total=" + sum); return sum; } public double average(int a, int b) { int sum = total(a, b); return sum / 2; } }
1234567891011121314151617 packagecom.huongdanjava; publicclassCalculator{ publicinttotal(inta,intb){intsum=a+b;System.out.println("Total="+sum);returnsum;} publicdoubleaverage(inta,intb){intsum=total(a,b);returnsum/2;}}

Từ khóa » Nguyên Lý Dry