[Job Manager] Design a possible way to handle job and task management.

In this factory design, the job manager maintains a list of factories and jobs.
Each concrete factory implement a standard interface and return a concrete job which also implements a standard interface.

I'm not sure this is the best design, but at least it's extensible without having to modify the job manager to add a new kind of job.
Another approach might be to codify jobs in text files and have a common utility to import them and this utility can just follow the 'script' from the file when creating a new job.
e.g.:
	JOB: Build House
	REQUIRE: 100 wood
	LOCATION: self
	TASK: build
	TASK: build

I'm not sure which approach is better.