问题描述
设计题目:国家宝藏本·富兰克林·盖茨(尼古拉斯·凯奇饰)是一个喜爱考古的冒险家。从小就梦想要找到国家宝藏,二十年来这个秘密一直萦绕在他的心头,现在他决定完成这一梦想。假设我们知道国家宝藏在哪里,并且想设计一个系统,一旦尼古拉斯碰触国家宝藏中的每箱黄金,系统会自动通知宝藏的守护神。分析:系统中应该有一个抽象的宝藏类(Treature),宝藏类维护着一个聚集,用于对守护神的跟踪,当宝藏被更动时,通知这些守护神(可以用一个ArrayList作为宝藏类的Obs属性来实现)。该类提供一系列的保护神管理方法,可以增加(addObserver())和删除(deleteObserver())宝藏保护神,以及当宝藏状态被更动时,通知notifyObservers())守护神。当然,宝藏类还要有一些辅助方法,比如探测宝藏状态是否改变的方法(hasChanged()),标记宝藏状态已更动的方法(setChanged())和复位状态变化标志(clearChanged()),以及返回宝藏守护神数目的方法countObserver()。具体的宝藏如黄金(Gold)也应是一个类,且是宝藏类的子类,维护着自己的状态(State),这可以用String型变量来实现。当然还有获得状态(getState())和改变状态(setState())的辅助方法,并且当重新设定的状态与原状态不同时,会通知看护该箱黄金的所有守护神。你还可发挥想象力定义其他的具体宝藏类,比如钻石(Diamond)类等等。守护神(Eudemon)应是个抽象类或接口,为各种具体的守护神定义一个接口,在得到宝藏的通知时采取行动。这个接口中只包含一个方法update(),用于宝藏状态改变时,具体的保护神所应采取的行动。具体的守护神比如老虎(Tiger)就是一个实现了抽象守护神接口中update()方法的具体守护神。你还可发挥想象力定义其他的具体守护神类,比如狮子(Lion)类等等。最后,尼古拉斯·凯奇(Cage)也是一个类,且是具体类,他将凭借智慧和勇敢,更动(touchTreature())这些国家宝藏的状态,这可要惊动宝藏的守护神呦......要求:请根据上面的剧本陈述,设计一个国家宝藏的守护系统,并用Java语言实现
解决方案
解决方案二:
解决方案三:
一堆字看着就晕
解决方案四:
只要是名词都是一个对象,再把所有对象中相似的提取为一个类~~~~~
解决方案五:
我一看见文字多的看第一行后面的就不想继续看下去了、
解决方案六:
看什么看,很明显了,一个观察者模式
解决方案七:
字太多了,懒得看!
解决方案八:
看看结贴率,就知道这丫是个什么货。擦!有一个问题的学生。