In addition to partitioning behavior into the lifecycles of objects, we need some strategies to organize control from a broad perspective. First among these is whether control is “pushed” or “pulled” along a single macro control cycle. In the online bookstore, for example, the checkout of a shopping cart pushes control and the associated parameters forward until the order is shipped or held up on back-order. In contrast, we could have organized control so a shipping clerk attempted to pack a shipment by requesting the next order, thus “pulling” the data toward the shipment.
The online bookstore ordering control cycle naturally favors pushing control, so let's examine a more neutral example.