Я пытаюсь заставить все дочерние классы абстрактного базового класса реализовать интерфейс. Когда я пытаюсь добавить with '<interface>'
в ABC, он требует, чтобы я немедленно применил необходимые методы и добавил sub <method> {}
для каждого метода интерфейса.Классы для детей реализуют интерфейс MooseX :: с MooseX :: ABC (абстрактный базовый класс)
Чтобы проиллюстрировать эту проблему,
package drawAPI {
use MooseX::Interface;
require 'draw';
one;
}
package shape {
use MooseX::ABC;
with 'drawAPI';
}
package square {
extends 'shape';
#here is where having a draw subroutine would be inforced
sub draw {};
}
Кто-нибудь знает способ сделать это? или может порекомендовать другой набор модулей для этого?
Благодаря