Video: Governors, Senators, Diplomats, Jurists, Vice President of the United States (1950s Interviews) 2025
Designmönster är formella sätt att dokumentera lösningar på designproblem. Ett av de vanligaste mönstren som används i Symbol-klassen är Singleton Pattern. Detta mönster används i iOS app utveckling och presenteras nedan i Tic-Tac-Toe applikationen.
Singleton-mönstret används i Symbol-klassen, notera det anpassade formatet för detta mönster i Tic-Tac-Toe-applikationen:
-
I stället för den ena instansen som returneras av textboken Singleton mönster, tre instanser (en vardera för X, O och tomma symboler) är tillåtna i Symbol-klassen. Dessa instanser hanteras av de tre statiska eller klassmetoderna. En av dessa metoder visas här:
+ (TTTSymbol *) SymbolXCreate {@synchronized ([TTTSymbol-klass]) {if (SymbolX == nil) {SymbolX = [[TTTSymbolallokering] init]; SymbolX-> värde = MARKX;} returnera SymbolX;}}
-
Tekniken som används i Singleton-mönstret för att skapa en enda instans används i metoden getBitmapForSymbol för att få bilderna för X, O och tomma symboler: > - (UIImage *) getBitmapForSymbol {@synchronized ([TTTSymbol class]) {om (! BitMapsInitialized) {NSString * imagePath = [[NSBundle mainBundle] pathForResource: @ "Bilder.bunt / x" ofType: @ "png"]; imageX = [[UIImage tilldela] initWithContentsOfFile: imagePath]; imagePath = [[NSBundle mainBundle] pathForResource: @ "Bilder. bunt / o" ofType: @ "png"]; imageO = [[UIImage tilldela] initWithContentsOfFile: imagePath]; imagePath = [[NSBundle mainBundle] pathForResource: @ "Bilder. bunt / blank" ofType: @ "png"]; imageBlank = [[UIImage tilldela] initWithContentsOfFile: imagePath]; bitMapsInitialized = true;}} UIImage * imageSelected = imageBlank; om (själv == [TTTSymbol SymbolXCreate]) imageSelected = imageX; annars om (själv == [TTTSymbol SymbolOCreate]) imageSelected = imageO; returnera imageSelected;}
Eftersom iOS-appar kan multithreaded, ändras Singleton för att hantera flera trådar med hjälp av @synkroniserad anteckning.
-
