Modèliser des canards
Interface Canard: méthode coincoin(); méthode nage(), méthode affiche();
Class CanardColVert extends Canard: méthode affiche();
Class CanardMarais extends Canard: méthode affiche();
Limites de l'héritage
1, le code est dupliqué pour rien.
2, difficile de trouer des comportements globaux.
3, le changement de comportement en temps réel est difficile.
4, les changement dans la classe mère peuvent par mégarde, altérer les filles.
Principe 1: encapsuler
Les éléments modifiable pour qu'ils n'affectent pas le reste du code
Principe 2: Programme par interface
Une interface se définie comme un contrat entre les classe .
des comportement vs des algorithme
3 types de relations: 1.IS-A 2.Has-A 3.Implement
2 classes côte à côte: composition.
Principe 3: préféré la composition(Has-A) à l'héritage(IS-A)
Design Pattern stratégie ("D.A.O" Data Access Object) http://blog.csdn.net/chenjie19891104/article/details/6396458