首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设计模式分配

设计模式分配
EN

Stack Overflow用户
提问于 2011-02-19 01:17:45
回答 3查看 2.5K关注 0票数 0

有没有地方可以找到实现设计模式(以及解决方案)的多个任务?

我的想法是以适当的方式动手。我想用Java实现这些。目前我只需要基本的设计模式,而不是J2EE模式。

实际上,我正在寻找要开发的完整应用程序,它使用了大多数设计模式。(所有设计模式都在一个任务中)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-19 03:40:25

给我建一个蚂蚁农场!!

你想要一个任务?我会给你一个。截止时间是2月22日星期二太平洋时间晚上9点。您将为我构建一个antfarm,并将使用一些常见的设计模式来完成此任务。

这并不是所有的设计模式,因为那是愚蠢的。然而,它确实有足够的交互将是复杂的,同时又足够简单,以便快速实现。一旦完成此操作,我们就可以考虑在ant农场中添加更多功能!

我会在需求出现时添加需求(添加了哪些版本)。

以下是要求:

功能需求

  • 草地上可以有许多蚂蚁农场。对于这个任务,只允许一个草地发生。
  • 一个草地应该能够产生逻辑上无限数量的蚂蚁农场。
  • 一个蚂蚁农场应该由一个蚂蚁农场房间网络组成。
  • 一个蚂蚁农场应该有产卵更多蚂蚁的空间。
  • 蚂蚁应该能够与其他蚂蚁战斗。当他们这样做时,战斗的输家应该死亡(蚂蚁农场不再能指挥它),战斗的胜利者应该获得蚂蚁的属性。
  • 蚂蚁农场应该只有一种蚂蚁。每个物种都应该有某种形式的奖励。也许它们收获食物的速度更快。
  • 如果一个蚁群的成员杀死了另一个蚁群的蚁后,杀手的蚁后应该控制死蚁后的蚂蚁数量。现在,所有蚂蚁都应该同时具有这两种蚂蚁的属性。(因此,如果一个物种很强大,而另一个物种很有效,那么现在两个种群都合并为一个既强大又efficient.)
  • Ants的种群,因此应该经常休息。当他们这样做的时候,他们应该吃食物。蚂蚁农场应该根据房间的数量限制一次可以休息的蚂蚁数量(每个休息室的X数量)。
  • 当在滴答结束时,有1个或更少活动的蚁群/蜂王时,模拟应该结束。这意味着你应该在你的第一个扁虫之前产生至少两个蜂群。在安特菲尔德的
  • 房间应该需要一定数量(可能是大量)的工人-扁虫来构建。因此,如果一个工人挖一个房间需要100刻度,那么需要50个工人2刻度,等等。但是建造一个房间应该有很大的成本,因为房间决定了你可以休息多少。(此要求在规范修订版1中添加。)

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

草场类必须是singleton.

  • An蚂蚁农场应该是通过将房间构建成蚂蚁农场来构建
  • (生成器pattern)
  • Drones和勇士应该仅由由AntRooms使用工厂模式创建,而Queens由Meadows由工厂模式创建,用于新殖民地的目的。
  • 使用装饰器模式来跟踪蚂蚁的attributes.
  • Antfarms应该是模板化(使用Java泛型)来容纳任何类型的蚂蚁,并且antfarm应该在运行时指定它持有哪种类型的蚂蚁。
  • 模拟应该是基于滴答的。(中介者模式)每个节拍,每个蚂蚁(以随机顺序)都应该根据它周围的环境执行一些操作。雄蜂应该寻找食物,战士应该猎杀敌人(如果饿了,也可以回去寻找食物),而蜂王应该产卵。

接口要求:

到ant场的接口应该是包含以下命令的命令行接口:

  • spawn X Y T -应该在物种T的X,Y位置创建一个新的菌落。输出应该给出菌落的标识符,以便以后可以控制。在y-32.
  • give I R A位置创建一群“杀手”蚂蚁--应该给出数量为A的I(在创建时)资源R所标识的蚁群。
  • Example give 1 food 50给蚁群1 50食物。例如,在群体3的base.
  • tick [T]处产卵的10个
  • give 3 warrior 10应该执行T滴答操作。为方便起见,允许不指定T,只需勾选once.
  • Example tick 10
  • Example tick
  • summary I -应提供菌落I的摘要。摘要提供有关colony.
  • Example summary 1可能会提供以下输出的信息:

输出:

代码语言:javascript
复制
    Species: Killer
    Workers: 14
    Warriors: 10
    Ant Kills: 18
    Colony kills: 2 (2:Pansy 4:Gatherer)
    Ticks alive: 143
    Status: Alive

  • Example summary 2可能会给出以下输出:

输出:

代码语言:javascript
复制
    Species: Pansy
    Workers: 4
    Warriors: 0
    Ant Kills: 2
    Colony kills: 0
    Ticks Alive: 25
    Status: Killed by 1:Killer

如果你遇到任何困难,请发表评论。我会试着给你一些提示,比如空白类,方法头,或者只是关于如何使这些设计模式相互交互的一般想法。

祝你好运,并祝你快乐!!

票数 6
EN

Stack Overflow用户

发布于 2011-02-19 01:24:09

http://www.allapplabs.com/java_design_patterns/java_design_patterns.htm

上面的站点迎合了几种设计模式,也有大量的示例和解决方案

票数 1
EN

Stack Overflow用户

发布于 2011-11-16 01:35:16

您还可以从“头部优先设计模式”一书中获取问题。它在每一章的末尾都有很多谜题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5044390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档