Mercoledì 15 Dicembre 2010

Modello di fabbrica in Objective-C

I design pattern sono imporre sia schema di funzionamento di un programmatore, durante la preparazione del codice dell'applicazione, così come per facilitare lui. In questo post, presenterò la mia versione semplificata della implementazione standard della fabbrica - Factory, ad esempio, l'Objective-C.

Factory.h

 # Importa 

 @ Factory Interfaccia: NSObject {
	 NSMutableDictionary * variabile;
 }

 + (Id) init;
 + (Void) setVar: (id) vari forKey: chiave;
 + (Id) Getvar: (id) chiave;
 + (Void) removeVar: (id) chiave;

 @ End

Factory.m

 # Import "Factory.h"

 @ Implementazione di fabbrica

 static NSMutableDictionary * variabile = nil;

 + (Id) {init
	 if (variabile)
         variabile = [[NSMutableDictionary alloc] init];
	 ritorno sé;
 }

 + (Void) setVar: (id) Vari forKey: (id) {chiave
	 if ([objectForKey variabile: (id) key]! = nil)
		 [RemoveVar Auto: (id) key];

	 [SetObject Variabile: (id) Vari forKey: (id) key];
 }

 + (Id) Getvar: (id) {chiave
	 ritorno [objectForKey variabile: (id) key];
 }

 + (Void) removeVar: (id) {chiave
	 if ([variabile objectForKey: (id) key]! = nil) {
		 [RemoveObjectForKey Variabile: (id) key];
	 }
 }

 @ End

Installazione

  1. Nel file nazwa_aplikacji_prefix.pch che è incluso all'inizio di ogni file nel codice dell'applicazione, aggiungere # importare "Factory.h".
  2. Nel metodo (BOOL) di applicazione: (*) UIApplication didFinishLaunchingWithOptions applicazione: (*) NSDictionary launchOptions, aggiungere all'inizio [init fabbrica].

Come si usa

  • Aggiunta di oggetti alla fabbrica con il metodo di [setVar di fabbrica: (id) NaszObiekt forKey: @ "naszKlucz"];
  • Recuperare l'oggetto dalla fabbrica con il metodo di [Factory Getvar: @ "naszKlucz"];
  • Abbiamo rimuovere l'oggetto dal Registro di sistema utilizzando il metodo di [Factory removeVar: @ "naszKlucz"];

Foto: Flickr


Voci correlate

Categorie: iPhone / mobili / guide
È possibile seguire tutte le risposte a questo articolo tramite il feed RSS 2.0 . Puoi anche scrivere i tuoi commenti , o per collegare a questo post sulla tua pagina.

3 commento / s

16 dicembre 2010

Qualcosa di strano che sei andato fuori ... Perché una fabbrica nella fabbrica standard di idea generale è che una classe (o un metodo pizzico) per creare diverse istanze di una classe basata su alcuni dei suo algoritmo interno e opzioni eventualmente previste. Più in particolare genera istanze di varie sottoclassi di una classe base comune o diverse classi che implementano una interfaccia comune.

Tu sei qui non genera alcun caso a tutti, solo gettare le cose in un hash, quindi è piuttosto un registro globale e non una fabbrica. Non sto dicendo che non sarebbe utile, ma la fabbrica non ha nulla a che fare ... :)

Anche le note tecnico, a prescindere dal concetto:
- Non c'è bisogno di controllare se la chiave esiste prima di eliminarlo in quanto non si tratta di non accadrà nulla
- Non c'è bisogno di togliere la chiave prima di impostare il nuovo, in quanto vi è quello di sostituire lo stesso
- Si può fare, invece di inizializzazione init, allora sarà una classe e chiama il costruttore automaticamente


18 Dicembre 2010
David Pośliński

Grazie per i vostri commenti.

Ad essere sinceri, in realtà non è un libro di affrontare l'argomento, ma questa è la mia classe, che è quello di facilitare la comunicazione di oggetti tra le diverse viste contemporaneamente. Volevo lasciare principalmente per la creazione di oggetti di questa classe, che, come giustamente stwierdziłeś effettivamente rotto il principio fondamentale di questo modello.

Per quanto riguarda le note tecniche, certamente non fa male ottimizzazione.

E 'bello che si può contare su un feedback dal polacco scena programmatori Objective-C, che, purtroppo, relativamente pochi scrivono in internet polacco.


18 Dicembre 2010

Sto scrivendo un po ', ma in inglese ;) Ma il fatto è che in Internet polacca è molto poco objc, a causa del fatto che i programmatori ObjC sono generalmente molto bassi in confronto anche con Ruby o Python ...


  • Obraz CAPTCHY
    Cambia immagine
    *

    Protezione anti-spam da WP-SpamFree