Tôi đã đọc một số thông tin về mô hình lớp Cluster, và hiểu tiếp theo:Objective-C và loại Cụm mẫu
public class cụm chỉ cung cấp giao diện mà không cần thực hiện thực tế, các lớp học khác thực hiện nó cho các trường hợp khác nhau;
nó có một số điểm tương đồng với kiểu Abstract Factory: khi chúng ta gọi phương thức
+classNameWith...
tùy thuộc vào đối số có thể chọn lớp con phù hợp nhất và trả về nó.
Ví dụ: +[NSNumber numberWithDouble:1.0]
, sẽ trả lại triển khai để lưu trữ giá trị kép.
Nhưng những gì tôi không hiểu: làm thế nào các công trình -init...
phương pháp của lớp cụm công cộng: [[NSNumber alloc] initWithDouble:1.0]
, như sau khi gọi alloc
nó đã phân bổ thể hiện của NSNumber
, không đó là lớp con.
Vì vậy, ai đó có thể giải thích cách thực sự hoạt động alloc-init
phương pháp của lớp cụm công khai và khi phân lớp bê tông được khởi tạo và trả về?
Bạn có thể quan tâm đến việc perusing [phiên bản GNUStep của NSNumber.m] (https://github.com/gnustep/gnustep-base/blob/master/Source/NSNumber.m). –
Josh Caswell, cảm ơn vì liên kết tuyệt vời! – Mikhail
Tôi cho rằng bạn đã đọc [Các khái niệm trong Lập trình Mục tiêu-C: Nhóm Lớp] (https://developer.apple.com/library/ios/documentation/general/conceptual/CocoaEncyclopedia/ClassClusters/ClassClusters.html)? –