Czytałem trochę informacji o strukturze klasy klastrów i zrozumiałe dalej:Objective-C i klasy Cluster wzór
publicznej klasy klaster zapewnia tylko interfejs bez faktycznej realizacji, inne klasy wdrożyć go w różnych przypadkach;
ma pewne podobieństwa do wzorca Abstrakcyjna Fabryka: kiedy wywołujemy metodę
+classNameWith...
, w zależności od argumentów można wybrać najbardziej odpowiednią podklasę i zwrócić ją.
Na przykład, +[NSNumber numberWithDouble:1.0]
powróci wdrożenie do przechowywania wartości podwójnych.
Ale czego nie rozumiem: jak działa -init...
metod klasy klastrów publicznym: [[NSNumber alloc] initWithDouble:1.0]
, a po wywołaniu alloc
już przydziela wystąpienie z NSNumber
, nie jest podklasą.
Czy ktoś może wyjaśnić, jak faktycznie działa alloc-init
metody publicznej klasy klastra, a kiedy konkretna podklasa jest tworzona i zwracana?
Możesz być zainteresowany przeglądaniem [GNUStep wersji NSNumber.m] (https://github.com/gnustep/gnustep-base/blob/master/Source/NSNumber.m). –
Josh Caswell, dzięki za świetny link! – Mikhail
Zakładam, że przeczytałeś już [Koncepcje w Objective-C Programming: Class Clusters] (https://developer.apple.com/library/ios/documentation/general/conceptual/CocoaEncyclopedia/ClassClusters/ClassClusters.html)? –