Singleton là một chống mẫu?

Apr 02 2023
ở đây tôi sẽ kể cho bạn câu chuyện ngắn gọn. Singleton là gì? mẫu đơn là cách mà bạn sẽ có một phiên bản từ lớp cụ thể trong toàn bộ ứng dụng và cung cấp một điểm truy cập duy nhất cho nó.

ở đây tôi sẽ kể cho bạn câu chuyện ngắn gọn.

Singleton là gì?

mẫu đơn là cách mà bạn sẽ có một phiên bản từ lớp cụ thể trong toàn bộ ứng dụng và cung cấp một điểm truy cập duy nhất cho nó.

Làm thế nào để viết singleton?

ví dụ:

final class Logs {
 static let shared = Logs()
 private init() {}
 func printLog(_ log:String) {
  print("here we do: ===\(log)===")
  }
}

chúng tôi có thể sử dụng singleton này từ bất kỳ đâu trong chương trình vì chúng tôi cần in nhật ký ở mọi nơi bên trong ứng dụng bằng cùng một định dạng.

Logs.shared.printLog("inside ViewModel and loading some feeds")

URLSession.shared

UserDefaults.chuẩn

Singleton có thể kiểm tra được không?

Trên thực tế, Không nếu bạn không sử dụng, hãy thực hiện thay đổi này:

Global Mutable Shared State : vì vậy bạn sẽ sử dụng static var instance , public init.

Tốt nhưng nguy hiểm' bởi vì bạn có thể thay đổi nó từ nhiều chủ đề.

Tôi có thể sử dụng Singleton ở đâu?

với lớp ghi thông báo vào bảng điều khiển như chúng ta thấy trong ví dụ trước.

Làm cách nào để thêm Logic vào Singleton?

Tiện ích mở rộng

Phân lớp

Làm cách nào để xử lý singleton từ khung của bên thứ ba?

sử dụng đảo ngược phụ thuộc bằng cách sử dụng giao thức/đóng cửa (giao diện).

Singletons có thể ổn. Nhưng nếu bạn không cẩn thận, chúng không chỉ là một anti-pattern. HỌ CÓ THỂ NGUY HIỂM!