Приквел к - Ни о чём. Про AddRef и Release.
Пусть есть классы CA, CB и CC реализующие интерфейс I. И наследующиеся от общего предка P.
И пусть в какой-то момент мы понимаем, что объекты надо кешировать.
И делаем фабрики. FA, FB и FC.
Фабрики делают объекты и кешируют их.
Всё работает.
Но!
Что мы видим?
Что интерфейс I нам уже не нужен. Делаем из него абстрактный класс CI и наследуем его от P.
А классы CA, CB и CC наследуем от CI.
И реализуем абстрактные методы, возможно выделяя общую функциональность.
И получаем, что мы избавились от AddRef/Release и накладных расходов связанных с ними, не ломая всю логику.
Пусть есть классы CA, CB и CC реализующие интерфейс I. И наследующиеся от общего предка P.
И пусть в какой-то момент мы понимаем, что объекты надо кешировать.
И делаем фабрики. FA, FB и FC.
Фабрики делают объекты и кешируют их.
Всё работает.
Но!
Что мы видим?
Что интерфейс I нам уже не нужен. Делаем из него абстрактный класс CI и наследуем его от P.
А классы CA, CB и CC наследуем от CI.
И реализуем абстрактные методы, возможно выделяя общую функциональность.
И получаем, что мы избавились от AddRef/Release и накладных расходов связанных с ними, не ломая всю логику.
Комментариев нет:
Отправить комментарий