it does but only in validation (read the pattern description)
in higher view and briefly, you get the condition, you pass it through builder to generate the expression, then pass it to interpreter for grammer check and validation and finally store it
and to calculate it, read the expression from db, pass it to parser (possibly compisite) and get the class hierarchy, and that will let you calculate the expression. as I drew a binary tree for you assume that every node has a method called "calculate" which will call "calculate" of every child node and applies its own operation to left and right (simple)