001    package components;
002    
003    import java.util.Map;
004    
005    /**
006     * <p>
007     * GameObjectFactory creates GameObjects. It is immutable and abstract.
008     * This is implemented by a factory for every object that we want to create.
009     * </p>
010     */
011    
012    public abstract class GameObjectFactory<G extends GameObject> {
013    
014            
015            public abstract G newInstance(Map <String, String> properties, GameSpace g);
016    }