Сильно изолированные компоненты и мелкие объекты(С++)
От: Kingofastellarwar Украина  
Дата: 02.05.13 17:26
Оценка:
есть приложение, архитектура довольно простая главная особенность которой — сильная изоляция компоентов друг от друга
а точнее есть длл базовых типов, ее линкуют в себя все остальные длл
ехе состоит из простого ядра, которое не имеет никакого отношения к предметной области
само приложение это набор модулей, модули это длл, друг с другом они взаимодействуют через интерфейсы(абстрактные классы в с++), поэтому модули не линкуют друг друга
(сот-но все объекты создаются фабриками)
в общем несмотря на то, что приходится вводить много интерфесов, такая схема мне очень нравится
но есть момент когда модуль вводит какой-то мелкий базовый тип у которого куча операций,типа матрицы
в общем класс у котрого почти нет полей, зато много методов.
а так как у нас всё на интерфейсах, то придется сделать для него интерфейс и кучу методов делать с интерфейсными параметрами, с кучей кастов внутри
этой проблемы бы не было если бы мы просто прилинковали такой объект,

вижу два решения:
1. сделать отдельную линкуемую длл с базовыми классами данного модуля, что не факт что возможно, потому что нужно чтобы модуль сам его прилинковал, а эта базовая длл может захотеть знать типы из этого модуля
2. тупо перенести все методы в заголовок, и использовать класс без интерфейса, тут мы немного отходим от нашей идеологии и немного тормозим копиляцию, но для случая мелкого базового типа я думаю это приемлемо


есть еще варианты?
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.