1. 조합 모드
/** ( 《Head First 》):
“ / ” 。
**/
protocol FileType {
func getFileName() -> String
func addFile(file: FileType)
func deleteFile(file: FileType)
func display()
}
// ,
extension FileType {
func addFile(file: FileType) {}
func deleteFile(file: FileType){}
}
class Folder: FileType {
private var files: Dictionary = Dictionary()
private var folderName: String
init(folderName: String) {
self.folderName = folderName
}
func getFileName() -> String {
return self.folderName
}
func addFile(file: FileType) {
files[file.getFileName()] = file
}
func deleteFile(file: FileType) {
files.removeValue(forKey: file.getFileName())
}
func display() {
let allKeys = Array(files.keys)
print(getFileName())
for i in 0.. String {
return self.fileName
}
func display() {
print(getFileName())
}
}
class SwiftFile: BaseFile {
}
class ObjCFile: BaseFile {
}
//Test
//
let rootFolder: FileType = Folder(folderName: " ")
let objcFile1: FileType = ObjCFile(fileName: "objc1.h")
let swiftFile1: FileType = SwiftFile(fileName: "file1.Swift")
rootFolder.addFile(swiftFile1)
rootFolder.addFile(objcFile1)
let subFolder : FileType = Folder(folderName: " ")
let objcFile2: FileType = ObjCFile(fileName: "objc2.h")
let swiftFile2: FileType = SwiftFile(fileName: "file2.Swift")
subFolder.addFile(swiftFile2)
subFolder.addFile(objcFile2)
rootFolder.addFile(subFolder)
//
rootFolder.display()
참고 자료: 1) 2) 청옥 복안http://www.cnblogs.com/ludashi/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.