Реализации на С++
Facade
Пример реализации паттерна фасад для подсистемы компиляции на языке С++
class Scanner
{
public:
Scanner(istream&);
virtual ~Scanner();
virtual Token& Scan();
private:
istream& _inputStream;
};class Parser
{
public:
Parser();
virtual ~Parser();
virtual void Parse(Scanner&, ProgramNodeBuilder&);
};class ProgramNodeBuilder
{
public:
ProgramNodeBuilder();
virtual ProgramNode* NewVariable(const char* variableName) const;
virtual ProgramNode* NewAssignment(ProgramNode* variable, ProgramNode* expression) const;
virtual ProgramNode* NewReturnStatement(ProgramNode* value) const;
virtual ProgramNode* NewCondition(ProgramNode* condition,ProgramNode* truePart, ProgramNode* falsePart) const;
ProgramNode* GetRootNode();
private:
ProgramNode* _node;
};Last updated