Це моє розуміння того, в чому полягають відмінності Переосмислення та Перезапису , на прикладі реального світу:
Припустимо, що у вас є компанія з виробництва автомобілів. Ви відомі та задоволені своїми клієнтами, оскільки вони завжди вам довіряють та купують вашу продукцію.
Щоб продовжити свій бізнес, у вас є в основному два варіанти:
Всі речі проходять через те, і ти знаєш, що йдеш на правильний шлях. Таким чином, ви хочете не тільки зберігати попередні моделі, але й продовжувати їх вдосконалювати. Хоча як це? Можливо, додавши до нових моделей деякі нові функції! Тепер нові моделі мають усі можливості PLUS, що мають нові функції.
Ви знаєте, що шлях, який ви пройшли, був свого роду неправильним! який жахливий підхід !! Ви швидко помічаєте, що компанія повинна змінити всю технологію, інакше вона зазнає суворих ситуацій (наприклад, банкрутства тощо)
Зрештою, з точки зору програмування, перший підхід стосується переосмислення, оскільки ви додаєте нові автомобілі ПОВЕДЕННЯ до своїх автомобілів, зберігаючи попередню поведінку, яку мав автомобіль, тоді як другий підхід стосується перезапису, оскільки ви хочете змінити поведінку повністю, і розробляти нові функції з нуля.
Сподіваюсь, це допоможе вам вийти.