Các cụm lớp cung cấp một giao diện công khai duy nhất cho một nhóm triển khai lớp con cụ thể, riêng tư. Một lập trình viên target-c thường xuyên sử dụng các cụm lớp và hiếm khi nhận ra nó - và đây là toàn bộ điểm của một cụm lớp. Công việc của một cụm lớp là che giấu sự phức tạp của chi tiết triển khai đằng sau một giao diện công khai.
Nhiều lớp Foundation là các cụm lớp, chẳng hạn như NSString, NSArray, NSDictionary và NSNumber. Khi bạn gọi [NSString stringWithFormat:]
cụm lớp sẽ cung cấp cho bạn một số lớp cụ thể triển khai NSString
giao diện. Đó có thể là NSConcreteString
, NSCFString
,NSFooBarString
, vv Mà cụm lớp mang đến cho bạn dựa trên các nhà xây dựng hoặc khởi tạo bạn đang gọi và các đối số.
Do đó, cụm lớp là một trong những khái niệm mạnh mẽ nhất trong lập trình Objective-C.
- Rất dễ thực hiện
- Dễ dàng thay đổi triển khai cơ bản mà không cần thay đổi mã gọi nó.
- Dễ dàng cung cấp các triển khai cụ thể khác nhau trong thời gian chạy (tức là tài nguyên thử nghiệm hoặc đối tượng giả)
- Vì những điều trên, dễ dàng kiểm tra và cấu trúc lại
Nếu bạn đến từ các ngôn ngữ khác, bạn có thể quen thuộc với các mẫu Gang of Four. Các cụm lớp có các yếu tố của cả nhà máy trừu tượng và các mẫu mặt tiền.
Tài liệu công khai của Apple bao gồm các cụm lớp (và cách triển khai và mở rộng chúng) khá rộng rãi. Thật không may, tôi nhận thấy rằng đối với nhiều nhà phát triển iOS, điều này và các mô hình dành riêng cho Cocoa khác là một điểm mù.
Năng lực cốt lõi của ca cao: Cụm lớp
Hướng dẫn cơ bản về ca cao: Cụm lớp
Ví dụ về cách triển khai các cụm lớp của riêng bạn có sẵn trên GitHub