Mã nguồn trùng lặp
Đứng đầu trong những “mùi hôi” là mã nguồn trùng lặp. Nếu bạn thấy cùng một cấu trúc xuất hiện ở nhiều nơi, bạn có thể chắc chắn rằng sẽ tốt hơn nếu bạn hợp nhất chúng lại.
Đơn giản nhất là trường hợp cùng một biểu thức xuất hiện trong hai phương thức của cùng một lớp. Khi đó bạn chỉ việc Trích phương thức và gọi nó từ cả hai nơi.
Một vấn đề thường gặp khác là khi cùng một biểu thức được sử dụng ở hai lớp chị em. Bạn có thể xoá bỏ sự trùng lặp này bằng cách Trích phương thức ở cả hai lớp rồi sau đó Kéo lên. Nếu đoạn mã tương tự nhưng không giống hệt nhau, bạn cần Trích phương thức để tách đoạn giống và đoạn khác nhau. Sau đó bạn có thể Tổ chức phương thức mẫu. Nếu các phương thức làm cùng một việc với những giải thuật khác nhau, bạn có thể chọn giải thuật rõ ràng hơn và sử dụng Thay thế giải thuật.
Nếu bạn có những đoạn mã trùng lặp trong các lớp không liên quan, hãy xem xét đến việc sử dụng Trích lớp từ một lớp và sử dụng thành phần mới ở lớp còn lại. Một khả năng khác là phương thức đáng lẽ chỉ thuộc về một lớp và được gọi bởi lớp còn lại hoặc phương thức thuộc về một lớp thứ ba và được sử dụng bởi cả hai lớp. Bạn cần quyết định xem phương thức có nghĩa ở đâu và đảm bảo rằng nó phải ở đó mà không phải nơi nào khác.