oop - In C++ how to best decouple 2 classes that must maintain collections of references to each other -
i looking advice on elegant , secure way decouple 2 c++ classes maintain collections of pointers each other's types.
i implemented using common base class polymorphism , told unsatisfactory solution. eager learn other ways can achieved.
thanks in advance...
i have added simplified version of class definitions below. aware salesteam
class not decoupled salesperson
here.
// global vectors vector<customer *> v_customer; vector<salesperson *> v_salesperson; vector<salesteam *> v_salesteam; class person { // base class }; class customer: public person { private: const person *contact; // salesperson serves customer public: customer(const int abirthyear); virtual ~customer() {} }; class salesperson: public person { private: vector<person *> v_client; // these customers salesperson serves public: salesperson(); virtual ~salesperson(){}; }; class salesteam { private: vector<salesperson *> v_teammember; // these sales people in salesteam public: salesteam(); };
can use mediator pattern handle decouple issue? code example:
class mediator { private: //store relationship in class } class salesperson: public person { private: mediator mediator; public: salesperson(); virtual ~salesperson(){}; }; class salesteam { private: mediator mediator; public: salesteam(); };
Comments
Post a Comment