Пожалуйста, дайте мне знать, если это не подходит, как сформулировано (в частности, будет ли Programmers.SE или что-то лучше для вопроса.)
Хорошо. Поэтому у меня есть ряд "черт", которые я сейчас выражаю как интерфейсы. Назовите их "обновляемыми" и "разрушаемыми". Выражение им как интерфейсов имеет недостаток, что я не могу делиться поведением между всеми "разрушаемыми" компонентами; с другой стороны, выражая их как абстрактные классы, я не могу смешивать и сопоставлять, явно не определяя смешанную черту как еще один абстрактный класс ( "UpdateableAndDestructible" ), и, кроме того, это похоже на злоупотребление функциональностью абстрактного класса в этой точке. Это, вероятно, то, что я в конечном итоге сделаю, если нет более чистых способов решения этой проблемы.
Каковы мои возможности в отношении чистых решений Java для этой головоломки? Возможно ли, чтобы я описывал общее поведение, а затем смешивал и сопоставлял, как мне кажется, без явного описания каждой перестановки, которую я буду использовать?