package schemeFactory; /** * Abstract factory to manufacture empty and non-empty AList objects. */ public interface IListFactory { /** * Creates a concrete empty AList object. * @return AList. */ public AList makeEmptyList(); /** * Creates a concrete non-empty AList. * @param first the first data element for the AList * @param tail != null the rest for the AList * @return AList */ public AList makeNEList(Object first, AList tail); }