Fabrica de model în Objective-C
Modele de design sunt de a impune atât schema de un programator de funcţionare, în timpul pregătirii de codul aplicatiei, precum şi pentru a facilita-l. În acest post, eu va prezenta versiunea mea simplificată a punerii în aplicare a standardului Factory - Fabrica de exemplu, Objective-C.
Factory.h
# Import@ Fabrica Interfata: NSObject { NSMutableDictionary * variabilă; } + (Id) init; + (Void) setVar: (id) Vari forKey: cheie; + (Id) Getvar: (id) cheie; + (Void) removeVar: (id) cheie; @ Sfârşit
Factory.m
Importul # "Factory.h" Punerea în aplicare @ Fabrica statică NSMutableDictionary * variabila = zero; + (Id) init { dacă (variabila) variabila = [[alloc NSMutableDictionary] init]; a reveni de sine; } + (Void) setVar: (id) Vari forKey: (id) {cheie în cazul în care ([objectForKey variabile: (id), tasta] = zero!) [RemoveVar sine: (id), tasta]; [SetObject Variabila: (id) Vari forKey: (id), tasta]; } + (Id) Getvar: (id) {cheie întoarcere [objectForKey variabilă: (id), tasta]; } + (Void) removeVar: (id) {cheie în cazul în care ([objectForKey variabile: (id), tasta]! = zero) { [RemoveObjectForKey Variabila: (id), tasta]; } } @ Sfârşit
Instalare
- În fişierul nazwa_aplikacji_prefix.pch care este inclus la începutul fiecărui fişier în codul aplicatiei, adauga import # "Factory.h".
- În metoda (Bool) de aplicare: (*) UIApplication didFinishLaunchingWithOptions de aplicare: (*) NSDictionary launchOptions, se adaugă la începutul [Fabrica de init].
Cum să utilizaţi
- Adăugarea de obiecte la fabrica de metoda de [setVar Factory: (id) NaszObiekt forKey: @ "naszKlucz"];
- Preluare obiect din fabrică prin metoda de [Fabrica de Getvar: @ "naszKlucz"];
- Ne scoate obiectul din registry utilizând metoda de [Fabrica de removeVar: @ "naszKlucz"];
Foto: Flickr
Legate de intrări
3 comentarii / s
Multumesc pentru comentariile voastre.
Pentru a fi sincer, chiar nu este o carte de a aborda subiectul, dar asta e clasa mea, care este de a facilita comunicarea dintre obiecte în mai multe vizualizări simultan. Am vrut să plece, în principal pentru crearea obiectelor din această clasă, care, aşa cum pe bună dreptate, de fapt, a rupt stwierdziłeś principiul de bază al acestui model.
În ceea ce priveşte note tehnice, cu siguranţă nu doare de optimizare.
Este frumos că puteţi conta pe feedback-ul de la poloneze scena Obiectiv-C, programatori care, din păcate, relativ puţini scrie în Internet polonez.
Am scris un pic, dar în limba engleză
Dar fapt este că în Internet polonez este foarte putin despre ObjC, datorită faptului că programatorii ObjC sunt, în general, foarte scăzut în comparaţie chiar cu Ruby sau Python ...



















































Ceva ciudat că te-ai dus afară ... Pentru că o fabrică în ideea de standard de fabrica generală este că o clasă (sau o metodă de strângere), pentru a crea diferite instanţe ale unei clase bazate pe o parte din algoritmul său intern şi, eventual, opţiunile oferite. Mai precis generează cazuri de subclase diferite de o clasă de bază comună sau clase diferite, care pun în aplicare o interfaţă comună.
Sunteţi aici nu generează nici un caz, la toate, arunca doar lucrurile într-un hash, aşa că este mai degrabă un registru la nivel mondial, şi nu o fabrică. Eu nu spun că nu ar fi util, dar fabrica nu are nimic de a face ...
Chiar şi note tehnice, în afară de concept:
- Nu este nevoie pentru a verifica dacă există cheia înainte de a şterge ca acest lucru nu este nimic nu se va întâmpla
- Nu trebuie să scoateţi cheia înainte de noi, deoarece nu este de a înlocui acelaşi
- Puteţi face loc de initializare de iniţializare, atunci aceasta va fi o clasă şi solicită constructorul automat