[oop] What is the difference between aggregation, composition and dependency?