Tôi đã gửi một ứng dụng tôi đã viết cho một số kiến trúc sư khác để xem xét mã. Một trong số họ gần như ngay lập tức viết lại cho tôi và nói "Đừng sử dụng" tĩnh ". Bạn không thể viết các bài kiểm tra tự động với các lớp và phương thức tĩnh." Tĩnh "là phải tránh."
Tôi đã kiểm tra và đầy đủ 1/4 các lớp học của tôi được đánh dấu "tĩnh". Tôi sử dụng tĩnh khi tôi sẽ không tạo một thể hiện của một lớp vì lớp này là một lớp toàn cầu duy nhất được sử dụng trong toàn bộ mã.
Ông tiếp tục đề cập đến một cái gì đó liên quan đến chế nhạo, các kỹ thuật IOC / DI không thể được sử dụng với mã tĩnh. Ông nói rằng thật không may khi các thư viện bên thứ 3 tĩnh vì không thể kiểm tra được.
Đây có phải là kiến trúc sư khác đúng không?
cập nhật: đây là một ví dụ:
APIManager - lớp này lưu giữ từ điển API của bên thứ 3 mà tôi đang gọi cùng với thời gian được phép tiếp theo. Nó thực thi các giới hạn sử dụng API mà rất nhiều bên thứ 3 có trong điều khoản dịch vụ của họ. Tôi sử dụng nó ở bất cứ đâu tôi đang gọi dịch vụ của bên thứ 3 bằng cách gọi Thread.S ngủ (APIManager.GetWait ("CarrierXYZ")); trước khi thực hiện cuộc gọi. Mọi thứ ở đây đều an toàn và nó hoạt động rất tốt với TPL trong C #.
static
Ổn;static
các lĩnh vực cần được xử lý rất cẩn thận