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