я работаю на Яве
Я создал красивую структуру декораторов для ребер графа. У меня есть базовое ребро с двумя вершинами, затем у меня есть взвешенный декоратор, который добавляет вес ребру, а затем у меня есть ориентированный декоратор, который добавляет ориентацию ребру. Декораторы реализуются с использованием интерфейсов и методов делегата (а не путем наследования).
Теперь я хотел бы добавить еще один декоратор - декоратор потока, соответствующий краю потока. Ребра потока имеют как направление, так и вес (пропускную способность), а также поток. Как мне реализовать что-то подобное в Java? мне нужно что-то вроде
public class FlowEdge implements IEdge, IWeightedEdge, IOrientedEdge, IFlowEdge
{
private IEdge, IWeightedEdge, IOrientedEdge decorated;
private int flow;
//constructors, delegate methods...
но это явно невозможно.
Возможно, декоратор — не лучший шаблон для использования. Я хотел бы добиться разделения задач (чтобы у меня могла быть любая комбинация нормальных, взвешенных, ориентированных ребер), но также мне нужна функциональность, возможно, нескольких декораторов в одном классе. Это как-то возможно? Или я переусердствую с этим?
extend
один класс, ноimplement
любое количество интерфейсов. - person Ted Hopp   schedule 08.02.2012