哪种设计模式适合可数对象?

时间:2014-08-07 13:39:36

标签: java design-patterns 2d-games

我有一个问题,我无法再解决。作为最近熟悉设计模式但尚未处理它们的初级开发人员,我需要你的帮助才能找到合适的。

问题是:

  
      
  1. 我想借助抽象类或接口来推广对象。

  2.   
  3. 我想计算派生类的每个实例,因为我需要限制它们的数量。

  4.   

例如在"海战#34;游戏我使用的类:SeaObject ---->我的船,小船,Kreyser。地雷,船只等的数量有限

我试过使用静态字段' count'在基类中我并不了解如何以正确的方式使用它。因为我可以再次复制和粘贴静态字段。我怀疑它不好:[。

我同意我决定使用抽象类SeaObject是不对的。如果存在更好的选择,我会使用它。

请不要严格要求我,我是这里的新人。 感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

签出对象池模式。它基本上是一个工厂,可以统计它所创造的东西。

答案 1 :(得分:0)

您必须在某处提及这些对象,否则您无法使用它们。在Java中,如果你没有引用一个对象,它就会被垃圾收集,在c ++中它会导致内存泄漏。

我也发现SeaObject中没有值知道有多少其他SeaObject,以便它可以限制它自己的创作。其他代码应该做出决定。

所以在你的游戏类中,你应该有一个对象列表。这样很容易看出目前有多少,你需要它与这些对象进行交互或绘制这些对象:

public class Game {
   private static final int MINE_LIMIT = 10;

   private final ArrayList<Mine> mines = new ArrayList<Mine>();

   public void addNewMineIfNotTooManyAlready() {
     if(mines.size() < MINE_LIMIT) {
        mines.add(new Mine());
     }
   }
}

如果您愿意/需要,列表mines可以是超级类型的列表,例如SeaObject

相关问题