Next: , Previous: Introduction, Up: Top



2 Three Design Patterns

A Monod Cell — or more specifically, the Cytoplasm within it — must keep track of a multitude of semi-independent, interacting objects, the ligands and the proteins. The design stack is a gradual build-up to the ultimate functionality needed. The bottom three layers are fairly generic design patterns in the context of concurrent programming. While they have a distinctive “biological” flavor (even forgetting the names), each one can actually can be used quite independently from the rest of the Monod implementation (see the examples in the testing directory).

The three patterns described here are described abstractly, without reference to an implementation (or by referring to many possible implementations). The implementations used in the Monod code base are described in Implementation Details. While special-purpose design patterns sounds like an oxymoron, and new design patterns should in general be avoided, these serve the purpose not only of reuse or validation, but also of explanation - they help explain an abstract layers of the Cytoplasm, and the serialization strategy that was employed for the implementation.