Miercuri cincisprezecelea decembrie 2010

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

  1. În fişierul nazwa_aplikacji_prefix.pch care este inclus la începutul fiecărui fişier în codul aplicatiei, adauga import # "Factory.h".
  2. Î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

Categorii: iPhone / mobile / ghiduri
Tu poţi a urma orice răspunsurile la această intrare prin intermediul feed RSS 2.0 . Puteţi scrie, de asemenea, propriile tale comentarii , sau de a lega la acest post pe pagina ta.

3 comentarii / s

16 decembrie 2010

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


18 decembrie 2010
David Pośliński

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.


18 decembrie 2010

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 ...


  • Obraz CAPTCHY
    Împrospăteze imaginea
    *

    Protecţie anti-spam de WP-SpamFree