Реализации на С++

Mediator

Общая реализация на языке С++

class Mediator
{
protected:
    list<shared_ptr<Colleague>> colleagues;

public:
    virtual ~Mediator() = default;

    virtual bool send(const Colleague* coleague, shared_ptr<Message> msg) = 0;

    static bool add(shared_ptr<Mediator> mediator, initializer_list<shared_ptr<Colleague>> list)
    {
        if (!mediator || list.size() == 0) return false;
    
        for (auto elem : list)
        {
            mediator->colleagues.push_back(elem);
            elem->setMediator(mediator);
        }
        return true;
    }
};

Last updated