factory method in object oriented design 5075802