Strategy des canards en Swift (a ma sauce)

protocol ComportementVol{

    func vole()

}

class voleAvecDesAiles:ComportementVol{

    func vole(){

    print (« je vole »)

    }

   

}

class neVolePas:ComportementVol{

    func vole(){

    print (« je ne vole pas »)

    }

   

}

class Canard{

    var comportementVol:ComportementVol?

   func afficher(){

       print (« je suis un canard »)

   }

    func vole(){

        comportementVol?.vole()

    }

}

class ColVert:Canard {

    

    override init(){

        super.init()

        comportementVol = voleAvecDesAiles()

    }

    

}

class CanardPlastic:Canard{

    override init(){

        super.init()

        comportementVol = neVolePas()

    }

}

var canard1:Canard = ColVert()

canard1.afficher()

canard1.vole()

var canard2:Canard = CanardPlastic()

canard2.afficher()

canard2.vole()

Laisser un commentaire