
interfaceでぶつ切りにしたうえで、実装をまとめたいのです。この思いつきを疑っていました
実例を探していました。手近なところにありました。CakePHP4のTableクラスです。
class Table implements RepositoryInterface, EventListenerInterface, EventDispatcherInterface, ValidatorAwareInterface
{
use EventDispatcherTrait;
use RulesAwareTrait;
use ValidatorAwareTrait;
}
interfaceとtraitの名前が対応しています。interfaceで設計しながら、実装の重複を避けるための工夫はこれかもしれません。