Так що я хотів наслідувати від sealed class
в CSharp і погорів. Просто немає способу розкрити його, якщо у вас немає доступу до джерела.
Тоді це змусило мене задуматися "чому sealed
навіть існує?". 4 місяці тому. Я не міг цього зрозуміти, незважаючи на те, що читав про нього багато речей, таких як:
- Побажання Джона Скіта " класи за замовчуванням були запечатані в .NET ".
- Віддаєте перевагу складу над спадщиною?
- "Ви не повинні закріплювати всі класи (...)"
- Як ви знущаєтесь із класу Sealed?
Я намагався перетравити все це з тих пір, але мені це занадто багато. Зрештою, вчора я спробував її ще раз. Я знову просканував усі, плюс ще кілька:
- Чому клас повинен бути чимось окрім "абстрактного" чи "остаточного / запечатаного"?
- Упродовж більш ніж 15 років програмування я вперше почув про SOLID з відповіді на питання, яке вже пов'язане, і я, очевидно, не прочитав його все 4 місяці тому
Нарешті, після багато роздумів, я вирішив сильно відредагувати оригінальне запитання на основі нової назви.
Старий питання був занадто широким і суб'єктивним. В основному це було питання:
- У старому заголовку: Одна вагома причина використовувати герметичну
- В тілі: Як правильно змінити герметичний клас? Забули про спадщину? Використовувати склад?
Але тепер, зрозумівши (чого я не робив вчора), що все sealed
це - це запобігання успадкування , і ми можемо і повинні дійсно використовувати склад над спадщиною , я зрозумів, що мені потрібно - це практичні приклади.
Напевно, моє запитання тут (а насправді завжди було) саме те, що містер Міндор запропонував мені в чаті : Як проектування на спадщину може спричинити додаткові витрати?