سلام. وقت به خیر
با توجه به کد هایی که نوشتیدبرنامه از کجا شروع میشه و به کحا ختم میشه من موقع تریس برنامه به مشکل بر میخورم.
مثلا موقعی که دستور زیر را مینویسم خب اول متد setNext از کلاس MonkeyHandler صدا زده میشه و چون این کلاس این متد را نداره پس به کلاس AbstractHandler مراجعه میکنه و از اونجا متد setNext صدا زده میشه.و از انجا به بعدش را نمیدونم چه اتفاقی میفته.
$monkey = new MonkeyHandler;
$dog = new DogHandler;
$monkey->setNext($dog);
echo "Chain : Monkey > Fish > Dog" . '<br>';
clientCode($monkey);
با سلام خدمت شما همراه عزیز
ببینید در حالت عادی setNext رو کاری نداریم تا زمانی که قراره بره حلقه بعدی رو چک کنه
وقتی حلقه اول از زنجیر تموم شد ( مثلا میمون ) میره سراغ حلقه بعدی از زنجیر ( این رفتن به بعدی به کمک setNext انجام میشه )