如何实现一个返回对象“枚举”的函数?

时间:2019-04-03 19:37:10

标签: java arrays collections enumeration

我正在研究一个有关使用Java的设计模式的项目。链接中提供了使用设计模式之前的类图。由于我是Java新手,所以某些类方法描述对我来说是模棱两可的。

例如,在名为Mall的类中,该类具有方法stores(),方法stores()被抽象地描述为返回购物中心中商店的“枚举”(我是在我的示例代码中使用Java数组作为占位符。

我想知道Java中可能是什么“枚举”,即具体的返回类型应该使用什么?在这种情况下,我们应该使用迭代器设计模式。请提供一个示例。

https://www.dropbox.com/s/kbug0ow3e14284b/DP_Project_1182.pdf?dl=0

public class Mall {
    private String mallId;
    private Store[] Stores;
    private Customer[] customers;

    public void enter(Customer c){}
    public void exit(Customer C){}
    public ShoppingCart getShopingCart()
    {
        return new ShoppingCart();
    }
    public Customer[] customers()
    {

    }
    public Store[] stores()
    {
    }
    void addStore(Store S)
    {

    }
}

1 个答案:

答案 0 :(得分:1)

根据您的目标,您需要创建一个名为Store的抽象类。 为了返回Iterator类型的Enumeration,我创建了一个List并将其元素作为Iterator返回。

我希望这个示例对您有帮助:

public abstract class Store {
    private String name;
    private Item items;
    //..other items
}
public class Mall {
    private Store myStore;
    //Vector which Stores all Store objects
    private List<Store> listOfStores=new LinkedList();
    //stores method which returns an Enumeration of Stores*/
    public Iterator<Store> stores(){
        return listOfStores.iterator();
    }
    public void addStore(Store s){
        listOfStores.add(s);
    }
}