У меня есть список из нескольких (~ 40) бизнес-объектов, которые имеют некоторые общие свойства либо со всем набором, либо с подмножествами. Это можно описать следующим псевдокодом:
Object Foo
property a
property b
Object Bar
property a
property c
Object Baz
property b
property c
В моем случае есть около 20 различных свойств.
Как мне создать оптимальный граф наследования, то есть тот, который дает наименьшее количество (абстрактных) родительских классов, при условии, что поведение не отличается, только свойства?