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
- Nel file nazwa_aplikacji_prefix.pch che è incluso all'inizio di ogni file nel codice dell'applicazione, aggiungere # importare "Factory.h".
- 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
3 commento / s
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.
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 ...



















































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