Hầu hết các chương trình mà tôi viết đều là các quy trình tương đối lưu thông, với một sự khởi đầu được xác định và kết thúc được mong đợi. Các vấn đề có thể phức tạp nhưng không sẵn sàng dựa vào việc sử dụng trung tâm của các đối tượng và lập trình hướng sự kiện. Thông thường, tôi chỉ đơn giản là chuyển qua các lô dữ liệu văn bản đa dạng để tạo ra các dữ liệu văn bản khác nhau. Chỉ thỉnh thoảng tôi mới cần tạo một lớp: Ví dụ: để theo dõi cảnh báo, lỗi và thông báo gỡ lỗi, tôi đã tạo một lớp (Vấn đề) với một phiên bản (myErr), mà tôi tin là một ví dụ về mẫu thiết kế Singleton . Như một yếu tố nữa, đồng nghiệp của tôi là trường cũ (thủ tục) hơn tôi và không quen thuộc với lập trình hướng đối tượng, vì vậy tôi không thích tạo ra những thứ mà họ không thể giải đố.Hãy mô tả những hành vi của bạn bằng cách giảm thiểu việc sử dụng các biến toàn cầu
Tuy nhiên, tôi nghe, lặp đi lặp lại, làm thế nào ngay cả mẫu thiết kế Singleton thực sự là một mẫu chống và nên tránh vì Biến toàn cục là xấu.
Chức năng nhỏ cần vài đối số được truyền cho chúng và không cần biết cấu hình (không thay đổi) hoặc trạng thái chương trình (thay đổi) - Tôi đồng ý. Tuy nhiên, các chức năng ở giữa chuỗi, chủ yếu kiểm soát luồng chương trình, có nhu cầu cho một số lượng lớn các biến cấu hình và một số biến trạng thái chương trình. Tôi tin rằng việc vượt qua một chục hoặc nhiều đối số cùng với một chức năng là một "giải pháp", nhưng hầu như không hấp dẫn. Tôi có thể, tất nhiên, các biến cram thành một mảng băm/dict/kết hợp duy nhất, nhưng điều đó có vẻ như gian lận. Ví dụ, kết nối với Active Directory để tạo một tài khoản mới, tôi cần các biến cấu hình như tên người dùng quản trị, mật khẩu, OU mục tiêu, một số nhóm mặc định, tên miền, v.v. Tôi sẽ phải vượt qua các đối số đó thông qua một loạt các chức năng mà thậm chí sẽ không sử dụng chúng, chỉ đơn thuần là xáo trộn chúng thông qua một chuỗi mà cuối cùng sẽ dẫn đến chức năng thực sự cần chúng. Tôi sẽ ít nhất tuyên bố biến cấu hình là hằng số, để bảo vệ chúng, nhưng ngôn ngữ của tôi trong những ngày này (Python) không cung cấp cách đơn giản để làm điều này, mặc dù công thức nấu ăn tồn tại như cách giải quyết.
Nhiều câu hỏi tràn ngăn xếp đã xảy ra tại sao? về sự xấu xa và điều kiện tiên quyết, nhưng không thường đề cập đến những lời khuyên về việc sống với sự hạn chế gần như tôn giáo này. Làm thế nào bạn đã giải quyết, hoặc ít nhất là hòa bình với, vấn đề biến toàn cầu và tình trạng chương trình? Bạn đã thỏa hiệp ở đâu? Thủ đoạn của bạn là gì, ngoài việc xô đẩy xung quanh đàn đối số cho các chức năng?
Câu hỏi hay - bạn có phân loại các biến cấp lớp (thành viên) làm biến toàn cầu không? –