Bởi vì bạn không cần tạo ra một instance class để sử dụng static method. Thêm nữa là static method không làm việc với một số khái niệm đặc trưng của OOP. Bạn không thể định nghĩa static method trong abstract class hay interface. Bạn cũng không thể override một static method. Thực sự thì static method là procedure programming style.
Static method có phải là bad practice hay không ? Nếu bạn sử dụng đúng thì không hề. Bad practice là những cách lập trình khó hiểu, khó sử dụng, dễ gây ra các duplicate code, khó maintain, reuse, vi phạm các nguyên tắc thừa kế. Bản thân static method rất dễ khiến lập trình viên sử dụng nó bừa bãi trong chương trình. Một ví dụ về bad practice là bạn thực hiện gọi static method qua một instace class. Hoàn toàn được nhưng khó hiểu về lý do sử dụng như vậy. Sau đây là một số chỉ dẫn để bạn cân nhắc xem liệu có nên sử dụng một static method hay không
Thứ nhất, method đó có cần sử dụng các instace variable hay không ? Bạn biết đấy không thể dùng instance variable trong static method
Thứ hai, nếu một số instance method sử dụng chung một đoạn code thì bạn nên đặt đoạn code đó trong static method
Thứ ba, method đó có cần override hay không ? Bạn biết là static method không thể override
Thường thì static method được sử dụng để viết util class của bạn. Bạn có thể xem Math hoặc commons.lang, tất cả các method đều là static
Nói chung, static method có hai hạn chế là: Vi phạm các nguyên tắc OOP và có nhiều trở ngại khi test các static method bằng các test tool.
Nói chung, static method có hai hạn chế là: Vi phạm các nguyên tắc OOP và có nhiều trở ngại khi test các static method bằng các test tool.
Không có nhận xét nào:
Đăng nhận xét