What is the best solution for situation:
class Person
...
class Student extends Person
...
class Employee extends Person
...
class Visitor extends Person
...
And some person is employee and student, for example. Classical approach of inheritance isn't good solution.
I can use delegation pattern:
User {
Person p.
Collection<Role> roles;
}
And All classes : Student, Employee, Visitor - will implement Role interface or class.
Is it a good solution?
Thank you!