#ifndef _commandprocessor_h #define _commandprocessor_h class AbstractCommand { }; class Command { private: Supplier* supplier; public: Command(): supplier(0) { }; Supplier* getSupplier() { return supplier; }; void setSupplier( Supplier* supplier ) { this -> supplier = supplier; }; }; class Controller { private: CommandProcessor* processor; Command* command; public: Controller(): processor(0), command(0) { }; CommandProcessor* getProcessor() { return processor; }; void setProcessor( CommandProcessor* processor ) { this -> processor = processor; }; Command* getCommand() { return command; }; void setCommand( Command* command ) { this -> command = command; }; }; class CommandProcessor { private: AbstractCommand* command; public: CommandProcessor(): command(0) { }; Command* getCommand() { return command; }; void setCommand( Command* command ) { this -> command = command; }; }; class Supplier { }; #endif