Kluster kelas menyediakan antarmuka publik tunggal ke sekelompok implementasi subkelas pribadi yang konkret. Seorang programmer objektif-c sering menggunakan cluster kelas dan jarang menyadarinya - dan inilah inti dari cluster kelas. Tugas cluster kelas adalah menyembunyikan kompleksitas detail implementasi di balik antarmuka publik.
Banyak dari kelas Foundation adalah cluster kelas, seperti NSString, NSArray, NSDictionary, dan NSNumber. Ketika Anda memanggil [NSString stringWithFormat:]
cluster kelas memberi Anda beberapa kelas konkret yang mengimplementasikan NSString
antarmuka. Ini bisa menjadi NSConcreteString
, NSCFString
, NSFooBarString
, dll yang cluster kelas memberi Anda didasarkan pada konstruktor atau initializer Anda panggil dan argumen.
Karena itu, cluster kelas adalah salah satu konsep yang paling memberdayakan dalam pemrograman Objective-C.
- Sangat mudah diimplementasikan
- Mudah untuk mengubah implementasi yang mendasarinya tanpa mengubah kode yang memanggilnya.
- Mudah untuk menyediakan implementasi konkret yang berbeda pada waktu proses (yaitu sumber daya pengujian atau objek tiruan)
- Karena hal di atas, mudah untuk diuji dan difaktor ulang
Jika Anda berasal dari bahasa lain, Anda mungkin akrab dengan pola Gang of Four. Cluster kelas memiliki elemen pabrik abstrak dan pola fasad.
Dokumentasi publik Apple mencakup cluster kelas (dan cara menerapkan serta memperluasnya) secara ekstensif. Sayangnya, saya telah menemukan bahwa bagi banyak pengembang iOS ini dan pola khusus Kakao lainnya adalah titik buta.
Kompetensi Inti Kakao: Gugus kelas
Panduan Dasar-dasar Kakao: Kelompok Kelas
Contoh cara mengimplementasikan cluster kelas Anda sendiri tersedia di GitHub