Swift-Objekte Initialisierung (Klasse factory-Methode, Standard-init -, Komfort-init)

Hallo, ich versuche, herauszufinden, die besten Muster, um die Arbeit mit Objekten in Swift.

ich glaube, ich bekam es richtig mit der Initialisierungen, die sowohl Komfort und Standard..., aber was passiert mit der Klasse factory-Methoden?

Ich habe versucht, zu erstellen eine einfache Klasse Person und eine Unterklasse Student, mit einigen Eigenschaften und Methoden. ist es die richtige Art und Weise, es zu tun?

   class Person{

    var _name: String
    var _surname: String
    var _dateOfBirthday: String
    var _phoneNumb: [String]

    init(name:String, surname:String, dateOfBirthday:String, phone:[String]){
        self._name = name
        self._surname = surname
        self._dateOfBirthday = dateOfBirthday
        self._phoneNumb = phone
    }

    convenience init() {
        self.init(name:"",surname:"",dateOfBirthday:"", phone:[])
    }

    convenience init(name:String){
        self.init(name:name,surname:"",dateOfBirthday:"", phone:[])
    }


}



class Student:Person{

    var _studentId:Int

    init(name: String, surname: String, dateOfBirthday: String, phone: [String], id:Int) {
        self._studentId = id
        super.init(name: "", surname: "", dateOfBirthday: "", phone: [])
    }

    convenience init(){
        self.init(name: "", surname: "", dateOfBirthday: "", phone: [], id:0)
    }

    convenience init(name:String){
        self.init(name:name,surname:"",dateOfBirthday:"", phone:[], id:0)
    }

}

was ist, wenn ich will, um eine Klasse factory-Methode? wäre es etwas wie dieses, oder ich mache es falsch?

class func Person() -> Person {
 var x = Person()
 x._telephoneNumber = [String]() //is this needed? or i can initialize it later?
 return x
}

class func PersonWithName(name:String) -> Person {
 var x = Person(name:name, surname:"", dateOfBirthday:"", telephoneNumber:[])
 return x
}

ist das richtig? warum wäre es besser, verwenden Sie die init-anstelle der Klasse Fabrik?

"ist es die richtige Art und Weise, es zu tun?" – Nein, weil es nicht mal kompilieren. Gibt es typografische Anführungszeichen "" und andere offensichtliche Fehler in der syntax wie class Student():Person oder class fun.
bearbeitet... überprüfen Sie es jetzt

InformationsquelleAutor Swifterino | 2014-10-29

Schreibe einen Kommentar