2009-11-07 41 views
11

Nếu bạn có dữ liệu cho một lớp sẽ được sửa đổi và cần được giữ lại trong suốt chương trình, nhưng chỉ được sử dụng trong một hàm thành viên, nó được ưu tiên biến biến đó thành biến tĩnh cục bộ của thường lệ mà nó ở trong hoặc biến nó thành một thành viên của lớp học?biến tĩnh so với thành viên

Trả lời

15

Câu hỏi không phải là "liệu dữ liệu có được sử dụng trong suốt chương trình" hay không "nếu bạn tạo hai đối tượng của lớp này, bạn có muốn chúng chia sẻ dữ liệu này không?" Nếu có, hãy làm cho nó tĩnh. Nếu không, đừng.

+2

Cảm ơn. Tôi quên rằng ngay cả các biến tĩnh cục bộ trong các hàm thành viên lớp được chia sẻ bởi tất cả các đối tượng của lớp đó. – Anonymous

4

Tôi cho rằng trong hầu hết các trường hợp, bạn không bao giờ nên sử dụng biến tĩnh cục bộ và thay vào đó hãy sử dụng biến thành viên tĩnh. Sau đó, câu hỏi thoái hóa nếu biến đó nên được chia sẻ giữa các cá thể lớp hay không.

1

Khai báo biến cục bộ là tĩnh nghĩa là phương thức của bạn hiện có trạng thái, tách biệt với trạng thái của đối tượng. Nó có thể dẫn đến nhiều sai lầm khi duy trì mã này (chẳng hạn như thực hiện sao chép bản dựng, phân công, tuần tự hóa) và khi đọc nó (hành vi phương pháp không rõ ràng).
Tránh sử dụng những người dân địa phương tĩnh trừ khi bạn có một số lý do chính đáng (người duy nhất tôi có thể nghĩ là triển khai thực hiện đơn luồng đơn).

Các vấn đề liên quan