These defines are for simpler access to the Concept class, the Director, when in the Builder and the Builder when in the Director. See Builder. They are useful because DIRECTOR and BUILDER will always be defined as the correct type since it type casts the director and builder members with the current class name.