设计模式分配

时间:2011-02-18 17:17:45

标签: java design-patterns

是否有任何地方可以找到多个分配来实现设计模式(以及解决方案?)

我的想法是以正确的方式开始。我想用Java实现它们。目前我只需要基本的设计模式,而不是J2EE模式。

我实际上正在寻找使用大多数设计模式的完整应用程序。 (单个作业中的所有设计模式)

3 个答案:

答案 0 :(得分:6)

为我建立一个Antfarm !!

你想要一个作业吗?我会给你一个。它将于2月22日星期二太平洋时间晚上9点到期。你将为我建立一个antfarm,你将使用一些常见的设计模式来实现它。

这没有任何设计模式,因为那只是愚蠢的。但是,它确实足以使交互变得复杂,同时又足够简单,可以快速实现。完成后,我们可以考虑在我们的蚁场中添加更多功能!

我会根据需要添加要求(添加了哪些修订版)。

以下是要求:

功能要求

  • 草地上可以有许多蚂蚁农场。对于这项任务,只允许一个草地进行。
  • 草地应该能够产生逻辑上无限数量的抗击法。
  • antfarm应该由antfarm房间网络组成。
  • 一个antfarm应该有产生更多蚂蚁的房间。
  • 蚂蚁应该能够与其他蚂蚁作战。当他们这样做时,战斗的失败者应该死掉(它的敌人不能再命令它),战斗的胜利者应该得到蚂蚁的属性。
  • 一只蚂蚁应该只有一种蚂蚁。每个物种都应该有一些奖励。也许他们收获的食物更快。也许他们有更高的机会杀死其他蚂蚁。
  • 如果一个蚁群的成员杀死另一个殖民地的女王,杀手的女王应该控制死去的女王的蚂蚁群。所有的蚂蚁现在也应该具有两种蚂蚁的属性。 (因此,如果一个物种是强壮的,其他物种是有效的,那么现在两个种群都合并为一个既强大又有效的群体。)
  • 蚂蚁应该经常休息。当他们这样做时,他们应该吃食物。根据房间数量(每间休息室的X数量),应该限制一个蚂蚁可以一次休息的容量。
  • 模拟结束时,在刻度结束时,有1个或更少的活跃殖民地/皇后。这意味着你应该在第一次打勾之前产生至少2个菌落。
  • Antfarm中的房间应该需要一定数量(可能很大)的工人蜱来建造。因此,如果需要1个工人100个刻度来挖一个房间,那么需要50个工人2个刻度等等。但是建造房间应该有很大的成本,因为房间决定了你可以休息多少。 (此要求在规范修订版1中添加。)

技术要求 :(粗体设计模式)

  • Meadow类必须是 singleton
  • 一个antfarm应该是通过将房间建造成一个抗灾农场来建造的。 (构建器模式)
  • 无人机和勇士只能使用AntRooms的工厂模式创建,并且由Meadows的工厂模式创建,用于新殖民地。
  • 使用装饰器模式跟踪蚂蚁的属性。
  • Antfarms应该模板化(使用Java泛型)来保存任何类型的蚂蚁,并且antfarm应该在运行时指定它拥有哪种类型的蚂蚁。
  • 模拟应该基于滴答。 (中介模式)每个蜱,每个蚂蚁(以随机顺序)应根据其周围环境执行某些操作。无人机应该寻找食物,战士应该追捕敌人(或者如果饥饿就回去吃食物),女王应该产卵。

接口要求

ant服务器场的接口应该是一个命令行界面,其中包含以下命令:

  • spawn X Y T - 应该在物种T的X,Y位置创建一个新的菌落。输出应该给出菌落的标识符,以便以后可以控制。
  • 示例spawn 14 -32 Killer在位置x14 y-32处创建了一群“杀手”蚂蚁。
  • give I R A - 应该给出由我(在创建时)资源R确定的数量为A的殖民地。
  • 示例give 1 food 50给出了殖民地150食物。
  • 示例give 3 warrior 10给殖民地3 10名基地产生的3 10名战士。

  • tick [T] - 应执行T tick操作。为方便起见,不允许指定T,只需勾选一次。

  • 示例tick 10
  • 示例tick

  • summary I - 应该给出殖民地的摘要I.摘要提供有关该殖民地的信息。

  • 示例summary 1可能会提供以下输出:

输出:

    Species: Killer
    Workers: 14
    Warriors: 10
    Ant Kills: 18
    Colony kills: 2 (2:Pansy 4:Gatherer)
    Ticks alive: 143
    Status: Alive
  • 示例summary 2可能会提供以下输出:

输出:

    Species: Pansy
    Workers: 4
    Warriors: 0
    Ant Kills: 2
    Colony kills: 0
    Ticks Alive: 25
    Status: Killed by 1:Killer

如果您遇到任何困难,请发表评论。我将尝试给你一些提示,比如空白类,方法标题,或者只是关于如何使这些设计模式与彼此互动的一般想法。

祝你好运,有乐趣 !!

答案 1 :(得分:1)

http://www.allapplabs.com/java_design_patterns/java_design_patterns.htm
上述网站迎合了很少的设计模式,并且还有大量的解决方案示例

答案 2 :(得分:0)

您还可以从“Head first design patterns”这本书中解决问题。每章末尾都有很多拼图问题。