Theo ý kiến của tôi, các biến cá thể chỉ cần thiết khi dữ liệu sẽ được sử dụng trên các cuộc gọi.
Đây là một ví dụ:
myCircle = myDrawing.drawCircle(center, radius);
Bây giờ cho phép tạo ảnh lớp myDrawing sử dụng 15 hàm trợ giúp để tạo đối tượng myCircle và mỗi hàm đó sẽ cần tâm và bán kính. Chúng vẫn không nên được đặt làm biến cá thể của lớp myDrawing. Bởi vì chúng sẽ không bao giờ cần thiết nữa.
Mặt khác, lớp myCircle sẽ cần lưu trữ cả tâm và bán kính dưới dạng các biến thể hiện.
myCircle.move(newCenter);
myCircle.resize(newRadius);
Để đối tượng myCircle biết được bán kính và tâm của nó khi các lệnh gọi mới này được thực hiện, chúng cần được lưu trữ dưới dạng các biến thể hiện, chứ không chỉ được truyền cho các hàm cần chúng.
Vì vậy, về cơ bản, biến cá thể là một cách để lưu "trạng thái" của một đối tượng. Nếu một biến không cần thiết để biết trạng thái của một đối tượng, thì nó không nên là một biến thể hiện.
Và đối với việc công khai mọi thứ. Nó có thể làm cho cuộc sống của bạn dễ dàng hơn trong thời điểm này. Nhưng nó sẽ quay lại ám ảnh bạn. Pease đừng.