Good point about YAML, Mark! I've been wanting to switch to something like that for a while. The really long, dotted parameter names ECJ uses to denote an object hierarchy work great, but are painful to read. Just thinking aloud here: I've also been trying to understand the similarities and differences between using a configuration file/markup language for parameters and relationships between objects, vs. using an inversion control framework like Spring <http://projects.spring.io/spring-framework/>. Is what Spring does via annotations and XML files essentially the same thing that ECJ does with property files? On Mon, Jun 29, 2015 at 2:39 PM, Mark Coletti <[log in to unmask]> wrote: > On Mon, Jun 29, 2015 at 7:22 AM, Christian Meyer <[log in to unmask] > > wrote: > >> Using an entity component system (ECS) might be suitable for you. It is >> similar to the strategy pattern but any combination of "strategies" is >> possible and also saving state along with them. >> >> > This seems to be a flavor of the State > <https://en.wikipedia.org/wiki/State_pattern> design pattern, which is > similar to Strategy; either or both of these might be applicable for the > agent implementation. As others have stated, Factory is good for > externalizing the creation of complex objects, and also using subclasses to > add special case complexity. > > As to a configuration language, Siggy, something like YAML > <https://en.wikipedia.org/wiki/YAML> might actually be more useful for > specifying run-time behavior. There exist a number of open source YAML > libraries. > > - Mark > -- Ph.D student in Computer Science George Mason University http://mason.gmu.edu/~escott8/