Video: Dùng Siri chuyên nghiệp kể cả không biết tiếng Anh 2025
Mẫu thiết kế là những cách chính thức để ghi lại các giải pháp cho các vấn đề thiết kế; một trong những mẫu phổ biến nhất được sử dụng trong lớp Symbol là Pattern Singleton. Mẫu này được sử dụng trong phát triển ứng dụng iOS và được trình bày dưới đây trong ứng dụng Tic-Tac-Toe.
Mẫu Singleton được sử dụng trong lớp Symbol, chú ý đến định dạng tùy chỉnh của mẫu này trong ứng dụng Tic-Tac-Toe:
-
Thay vì một trường hợp được trả về bởi mẫu Singleton của sách giáo khoa, ba trường hợp ký hiệu X, O, và trống) được cho phép trong lớp Biểu tượng. Các thể hiện này được quản lý bởi ba phương pháp tĩnh, hoặc lớp. Một trong những phương pháp này được hiển thị ở đây:
+ (TTTSymbol *) SymbolXCreate {@synchronized ([TTTSymbol class]) {if (SymbolX == nil) {SymbolX = [[TTTSymbol alloc] init]; SymbolX-> value = MARKX;} return SymbolX;}}
-
Kỹ thuật được sử dụng trong mô hình Singleton để tạo ra chỉ một cá thể được sử dụng trong phương thức getBitmapForSymbol để lấy các hình ảnh cho các biểu tượng X, O và trống: > - (UIImage *) getBitmapForSymbol {@synchronized ([TTTSymbol class]) {if (! BitMapsInitialized) {NSString * imagePath = [[NSBundle mainBundle] pathForResource: @ "Hình ảnh bó / x" ofType: @ "png"]; imageX = [[UIImage alloc] initWithContentsOfFile: imagePath]; imagePath = [[NSBundle mainBundle] pathForResource: @ "Images.bundle / o" ofType: @ "png"]; imageO = [[UIImage alloc] initWithContentsOfFile: imagePath]; imagePath = [[NSBundle mainBundle] pathForResource: @ "Hình ảnh bó / trống" củaType: @ "png"]; imageBlank = [[UIImage alloc] initWithContentsOfFile: imagePath]; bitMapsInitialized = true;}} UIImage * imageSelected = imageBlank; if (self == [TTTSymbol SymbolXCreate]) imageSelected = imageX; else if (self == [TTTSymbol SymbolOCreate]) imageSelected = imageO; return imageSelected;}
Vì các ứng dụng iOS có thể được đa luồng, Singleton được sửa đổi để đối phó với nhiều luồng bằng cách sử dụng chú thích @synchronized.
-
