update .gitignore
Third Design.
With this design, other types of objects can reuse our fly and quack
behaviors because these behaviors are no longer hidden away in our Duck
classes!
And we can add new behaviors without modifying any of our existing
behavior classes or touching any of the Duck classes that use flying
behaviors.
Fourth Design.Delegate fly and quack behavior outside to interface.
Fifth Design. Now We can set behavior in runtime!