пятница, 10 июля 2015 г.

Про классы, фабрики и интерфейсы

Приквел к - Ни о чём. Про AddRef и Release.

Пусть есть классы CA, CB и CC реализующие интерфейс I. И наследующиеся от общего предка P.

И пусть в какой-то момент мы понимаем, что объекты надо кешировать.

И делаем фабрики. FA, FB и FC.

Фабрики делают объекты и кешируют их.

Всё работает.

Но!

Что мы видим?

Что интерфейс I нам уже не нужен. Делаем из него абстрактный класс CI и наследуем его от P.

А классы CA, CB и CC наследуем от CI.

И реализуем абстрактные методы, возможно выделяя общую функциональность.

И получаем, что мы избавились от AddRef/Release и накладных расходов связанных с ними, не ломая всю логику.

Комментариев нет:

Отправить комментарий