# Lập trình hướng giao thức (iOS) > Protocols, extensions, default implementations, PATs, protocol composition, type erasure - 20 câu hỏi phỏng vấn - Mid-Level - [Câu hỏi phỏng vấn: iOS](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van.md) ## 1. Protocol trong Swift là gì? **Câu trả lời** Một protocol định nghĩa một tập hợp các thuộc tính và phương thức mà một kiểu phải triển khai. Nó hoạt động như một hợp đồng giữa protocol và các kiểu tuân thủ. Protocol cho phép định nghĩa interface mà không áp đặt hệ thống phân cấp kế thừa, thúc đẩy tính kết hợp và khả năng tái sử dụng mã. ## 2. Sự tuân thủ protocol là gì? **Câu trả lời** Sự tuân thủ có nghĩa là một kiểu (class, struct hoặc enum) triển khai tất cả các thuộc tính và phương thức mà protocol yêu cầu. Một kiểu có thể tuân thủ nhiều protocol cùng lúc. Sự tuân thủ thiết lập một mối quan hệ kiểu độc lập với kế thừa. ## 3. Protocol extension là gì? **Câu trả lời** Một protocol extension cung cấp các triển khai mặc định cho các phương thức của protocol. Tất cả các kiểu tuân thủ đều nhận được các triển khai này một cách tự động mà không cần định nghĩa lại. Điều này thúc đẩy việc tái sử dụng mã và giảm đáng kể boilerplate. ## Còn 17 câu hỏi nữa - Làm thế nào để định nghĩa một protocol với thuộc tính bắt buộc? - Kế thừa protocol là gì? Đăng ký miễn phí: https://sharpskill.dev/vi/login ## Các chủ đề phỏng vấn iOS khác - [Kiến thức cơ bản về Swift](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/swift-basics.md): 25 câu hỏi, Junior - [Kiến thức cơ bản về ngôn ngữ Swift](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/swift-language-essentials.md): 15 câu hỏi, Junior - [Kiến thức cơ bản về UIKit](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/uikit-fundamentals.md): 18 câu hỏi, Junior - [Vòng đời UIViewController](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/uiviewcontroller-lifecycle.md): 20 câu hỏi, Junior - [UserDefaults & Keychain](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/userdefaults-keychain.md): 20 câu hỏi, Junior - [Vòng đời của ứng dụng](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/app-lifecycle.md): 20 câu hỏi, Junior - [Auto Layout & Constraints](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/auto-layout-constraints.md): 24 câu hỏi, Mid-Level - [UITableView & UICollectionView](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/uitableview-uicollectionview.md): 25 câu hỏi, Mid-Level - [Kiến thức cơ bản về SwiftUI](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/swiftui-basics.md): 18 câu hỏi, Mid-Level - [Quản lý trạng thái SwiftUI](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/swiftui-state-management.md): 22 câu hỏi, Mid-Level - [Điều hướng SwiftUI](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/swiftui-navigation.md): 18 câu hỏi, Mid-Level - [Networking & URLSession](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/networking-urlsession.md): 20 câu hỏi, Mid-Level - [Codable & Phân tích JSON](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/codable-json-parsing.md): 20 câu hỏi, Mid-Level - [Core Data](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/core-data.md): 22 câu hỏi, Mid-Level - [Kiến trúc MVVM](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/mvvm-architecture.md): 20 câu hỏi, Mid-Level - [Thông báo Push](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/push-notifications.md): 18 câu hỏi, Mid-Level - [Unit Testing & XCTest](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/unit-testing-xctest.md): 20 câu hỏi, Mid-Level - [Kiểm thử giao diện người dùng](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/ui-testing.md): 18 câu hỏi, Mid-Level - [Xcode & Hệ thống Build](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/xcode-build-system.md): 16 câu hỏi, Mid-Level - [Swift Package Manager](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/swift-package-manager.md): 16 câu hỏi, Mid-Level - [Memory Management & ARC](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/memory-management-arc.md): 22 câu hỏi, Senior - [Combine Framework](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/combine-framework.md): 24 câu hỏi, Senior - [Concurrency & async/await](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/concurrency-async-await.md): 26 câu hỏi, Senior - [iOS Design Patterns](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/ios-design-patterns.md): 24 câu hỏi, Senior - [Tối ưu hóa hiệu suất](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/performance-optimization.md): 22 câu hỏi, Senior - [Bảo mật và mã hóa](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/security-encryption.md): 20 câu hỏi, Senior - [SwiftUI Advanced](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/swiftui-advanced.md): 22 câu hỏi, Senior - [Kiến trúc ứng dụng iOS](https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/ios-app-architecture.md): 22 câu hỏi, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/vi/technologies/ios/cau-hoi-phong-van/protocol-oriented-programming