I am reading PHP Objects, Patterns, and Practice. The author is trying to model a lesson in a college. The goal is to output the lesson type (lecture or seminar), and the charges for the lesson depending on whether it is an hourly or fixed price lesson. So the output should beLesson charge 20. Charge type: hourly rate. Lesson type: seminar.Lesson charge 30. Charge type: fixed rate. Lesson type: lecture.when the input is as follows:$lessons[] = new Lesson('hourly rate', 4, 'seminar');$lessons[] = new Lesson('fixed rate', null, 'lecture');I wrote this:class Lesson {    private $chargeType;    private $duration;    private $lessonType;    public function __construct($chargeType, $duration, $lessonType) {        $this->chargeType = $chargeType;        $this->duration = $duration;        $this->lessonType = $lessonType;    }    public function getChargeType() {        return $this->getChargeType;    }    public function getLessonType() {        return $this->getLessonType;    }    public function cost() {        if($this->chargeType == 'fixed rate') {            return 30;        } else {            return $this->duration * 5;        }    }}$lessons[] = new Lesson('hourly rate', 4, 'seminar');$lessons[] = new Lesson('fixed rate', null, 'lecture');foreach($lessons as $lesson) {    print Lesson charge {$lesson->cost()}.;    print  Charge type: {$lesson->getChargeType()}.;    print  Lesson type: {$lesson->getLessonType()}.;    print <br />;}But according to the book, I am wrong (I am pretty sure I am, too). Instead, the author gave a large hierarchy of classes as the solution. In a previous chapter, the author stated the following 'four signposts' as the time when I should consider changing my class structure:Code duplicationThe class who knew too much about its contextThe jack of all trades - classes that try to do many thingsConditional statementsThe only problem I can see is conditional statements, and that too in a vague manner - so why refactor this? What problems do you think might arise in the future that I have not foreseen?Update: I forgot to mention - this is the class structure the author has provided as a solution - the strategy pattern:
Why is my class worse than the hierarchy of classes in the book (beginner OOP)?
php;object oriented;refactoring