… несмотря на то, что они сущности совсем разные, у них есть общие свойства… Так же у них есть индивидуальные свойства...
Паттерн этот называется ООП :) А именно — использование абстрактных классов и наследование. Советую почитать хорошую старую литературу типа Гради Буча.
к каждому свойству принадлежат ряд методов для работы с ними. Например ряд методов для работы с изображением, ряд методов для работы с текстом. и пр.
А вот тут архитектурная ошибка вкрадывается. Классы то Ваши принадлежат предметной области и следовательно, методы классов должны реализовывать бизнес-логику предметной области. Вы же не начинаете хранить в
данных класса «статья» файловый дескриптор, таймаут или хендлер какой-то. Конечно, смешивать данные, относящиеся к технологическим особенностям системы и данные предметной области плохо. Но почему-то Вам пришло в голову смешать там логику предметной области и совершенно служебные методы по обработке картинок или текстов. Для этого нужно сделать отдельные классы, и тогда служебные классы будут выполнять методы над классами предметной области и будет Вам концептуальное счастье.
возникла мысль написать архитектуру сущностей, как набор примитивных классов-параметров
Можно конечно изобретать нечто высокоуровневое на основе ООП, но это только если эта архитектура упростит Вашу программу, повысит переиспользование кода, упростит поддержку кода или улучшит другие характеристики.