Đó là về tác dụng phụ.
Hỏi liệu var1
một phần của nhà nước bỏ lỡ điểm của câu hỏi này. Chắc chắn nếu var1
phải kiên trì, nó phải là một ví dụ. Một trong hai cách tiếp cận có thể được thực hiện để làm việc cho dù sự kiên trì là cần thiết hay không.
Cách tiếp cận tác dụng phụ
Một số biến thể hiện chỉ được sử dụng để giao tiếp giữa các phương thức riêng tư từ cuộc gọi đến cuộc gọi. Loại biến thể hiện này có thể được cấu trúc lại từ sự tồn tại nhưng nó không phải như vậy. Đôi khi mọi thứ rõ ràng hơn với họ. Nhưng điều này không phải là không có rủi ro.
Bạn đang để một biến ngoài phạm vi của nó bởi vì nó được sử dụng trong hai phạm vi riêng tư khác nhau. Không phải vì nó cần thiết trong phạm vi bạn đang đặt nó. Điều này có thể gây nhầm lẫn. "Quả cầu là xấu xa!" mức độ khó hiểu. Điều này có thể làm việc nhưng nó sẽ không có quy mô tốt. Nó chỉ hoạt động trong nhỏ. Không có vật thể lớn. Không có chuỗi thừa kế dài. Đừng gây ra hiệu ứng yo yo .
Cách tiếp cận chức năng
Bây giờ, ngay cả khi var1
phải kiên trì, không có gì nói rằng bạn phải sử dụng nếu với mọi giá trị nhất thời có thể xảy ra trước khi nó đạt đến trạng thái bạn muốn được bảo tồn giữa các cuộc gọi công khai. Điều đó có nghĩa là bạn vẫn có thể thiết lập một var1
cá thể bằng cách sử dụng không có gì ngoài các phương thức chức năng hơn.
Vì vậy, một phần của trạng thái hay không, bạn vẫn có thể sử dụng một trong hai cách tiếp cận.
Trong các ví dụ này, 'var1' được gói gọn không có gì ngoài trình gỡ lỗi của bạn biết nó tồn tại. Tôi đoán bạn đã cố tình làm điều đó bởi vì bạn không muốn thiên vị chúng tôi. May thay tôi không quan tâm cái nào.
Nguy cơ tác dụng phụ
Điều đó nói rằng, tôi biết câu hỏi của bạn đến từ đâu. Tôi đã làm việc dưới khổ sở yo yo 'ing thừa kế mà đột biến một biến Ví dụ ở nhiều cấp độ trong nhiều phương pháp và đi squirrelly cố gắng làm theo nó. Đây là rủi ro.
Đây là nỗi đau đưa tôi đến một cách tiếp cận chức năng hơn. Một phương thức có thể ghi lại các phụ thuộc và đầu ra của nó trong chữ ký của nó. Đây là một cách tiếp cận mạnh mẽ, rõ ràng. Nó cũng cho phép bạn thay đổi những gì bạn vượt qua phương thức riêng tư làm cho nó có thể tái sử dụng nhiều hơn trong lớp.
Mặt trái của tác dụng phụ
Nó cũng hạn chế. Chức năng thuần túy không có tác dụng phụ. Đó có thể là một điều tốt nhưng nó không hướng đối tượng. Một phần lớn của định hướng đối tượng là khả năng tham chiếu đến một bối cảnh bên ngoài phương thức. Làm điều đó mà không làm rò rỉ toàn cầu khắp nơi và biến mất là thế mạnh của OOP. Tôi có được sự linh hoạt của toàn cầu nhưng nó được chứa trong lớp. Tôi có thể gọi một phương thức và biến đổi mọi biến đối tượng cùng một lúc nếu tôi thích. Nếu tôi làm điều đó, tôi bắt buộc phải đặt cho phương thức một cái tên rõ ràng để làm gì để mọi người không ngạc nhiên khi điều đó xảy ra. Bình luận cũng có thể giúp đỡ. Đôi khi những bình luận này được chính thức hóa là "điều kiện đăng".
Nhược điểm của phương pháp riêng chức năng
Cách tiếp cận chức năng làm cho một số phụ thuộc rõ ràng. Trừ khi bạn trong một ngôn ngữ chức năng thuần túy, nó không thể loại trừ các phụ thuộc ẩn. Bạn không biết, chỉ nhìn vào một chữ ký phương thức, rằng nó không che giấu một tác dụng phụ từ bạn trong phần còn lại của mã. Bạn không cần.
Bài có điều kiện
Nếu bạn và mọi người khác trong nhóm, tài liệu đáng tin cậy về các tác dụng phụ (điều kiện trước / sau) trong các bình luận, thì mức tăng từ cách tiếp cận chức năng sẽ ít hơn nhiều. Vâng tôi biết, mơ về.
Phần kết luận
Cá nhân tôi có xu hướng hướng tới các phương thức riêng tư chức năng trong bất kỳ trường hợp nào nếu tôi có thể, nhưng thành thật mà nói chủ yếu là vì những bình luận về hiệu ứng phụ có điều kiện trước / sau không gây ra lỗi trình biên dịch khi chúng bị lỗi thời hoặc khi các phương thức bị lỗi. Trừ khi tôi thực sự cần sự linh hoạt của các tác dụng phụ, tôi chỉ muốn biết rằng mọi thứ hoạt động.