如何从抽象类中实现特定具体类的列表?

时间:2013-08-15 14:53:47

标签: java design-patterns arraylist polymorphism abstract-class

我有一个抽象类“Actor”,它应该生成一个实现的具体类之一的列表(ArrayList,可能是最佳选项),让我们使用“Actor1”。 有三个或更多具体类Actor1,2,3 ...使用工厂方法制作,并且所有这些类都必须具有创建的Actor1列表。

有什么建议吗?

好吧,我没想到会有这么快的反应。好吧,因为我没有得到它的开头,到目前为止,一些代码是这样的:

public abstract class Actor implements IActor { 
   protected Coordinates coordinates;
   protected List<Actor> actor1;
   public Actor(Coordinates coordinates) { 
      this.coordinates = coordinates;    
      //How to implemet the list? 
   } 

   public Coordinates getLocation() { 
      return coordinates; 
   }

   public void setCoordinates(Coordinates coordinates) { 
      this.coordinates = coordinates; 
   }

1 个答案:

答案 0 :(得分:1)

我会使Actor成为一个有限的泛型类型,然后在具体的子类中进一步限制它。

public abstract class Actor<A extends Actor<A>> {

    public List<A> getActors() { ...

}

public class Actor1 extends Actor<Actor1> { ...

这样,来自getActors的{​​{1}}将返回Actor1