本文主要是介绍设计模式与软件体系结构---期末复习题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
解答:
1、上述设计使用了抽象工厂设计模式
2、
3、SuperGameFactory和MedGameFactory
4、多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。一个抽象工厂类,可以派生出多个具体工厂类。每个具体工厂类可以创建多个具体产品类的实例,也就是创建的是一个产品线下的多个产品。
5、工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
1、Java是单继承语言,不支持多继承
2、
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
a、逻辑图:
b、设计类图:
c、每个方法的功能:
- Filter类:setInPipe()和setOutPipe()负责设置输入输出管道,Start()和Stop()负责控制过滤器开始工作和暂停工作;
- Filter类的子类:processData()负责实现每个子类对应的功能;
- Pipe类:read()和write()实现数据的读取与写入,close()实现流的关闭。
题目:
解答:
a、逻辑图:
b、设计类图:
c、每个方法的功能:
- Filter类:setInPipe()和setOutPipe()负责设置输入输出管道,Start()和Stop()负责控制过滤器开始工作和暂停工作;
- Filter类的子类:processData()负责实现每个子类对应的功能;
- Pipe类:read()和write()实现数据的读取与写入,close()实现流的关闭。
题目:
解答:
1、设计类图:
2、解释:
Observable和Observer为接口类,FishbowlGUI为被观察类(实现Observable接口),ChemistryGUI、TemperatureGUI、LevelGUI为观察者类(实现Observer接口)。
FishbowlGUI有3个私有变量quality、temperature和level,分别代表鱼缸的水质、水温和水位高度,每个私有变量都有其对应的get和set方法。
三个观察者类都要实现takeAction(Observable s)方法,每个类实现该方法的方式不同:
- 当quality超过特定范围时,化学传感器ChemistryGUI排除鱼缸部分废水,补充新水;
- 当temperature低于或高于特定温度时,TemperatureGUl开启加热设备或者冷却设备调整水温;
- 当level高于或低于特定高度时,LevelGUI开启排水设备,排除部分水或者添加新鲜的水。
该方法通过参数传入一个被观察者对象,当得到通知后,将对被观察者类FishbowlGUI的某些方法进行调用,以便获取变化的状态。
题目:
解答:
1、设计类图:
2、AirportInfo类三个方法的功能:
- AddObserver(Observer obs)方法,将多个观察者添加到被观察者的observerList中,以便在通知观察者时使用;
- setChanged()和notifyObservers(),通知观察者被观察者对象的状态已经改变,同时会运行观察者对象的update()方法。执行顺序为:setChanged()先执行,notifyObservers()后执行。
3、update方法的参数:
- 第一个参数为Observable类型,代表被观察者对象;
- 第二个参数为Object类型,代表发生的事件,Object为被观察者的一种状态值,提供给update()方法,以便更新观察者。
4、具体行为:
- VoiceInfo类的update()方法完成的工作是从AirportInfo类获取语音机场信息,然后将这些信息发送给乘客;
- DisplayInfo类的update()方法负责从AirportInfo类获取文字机场信息,然后将这些信息显示在屏幕上。
5、工作原理:
- 被观察者AirportInfo有一个observerList(ArrayList类型)成员变量,用于记载动态添加的观察者。
- 对被观察者状态感兴趣的对象(观察者)VoiceInfo和DisplayInfo,应该调用被观察者的addObserver()方法将自己注册为它的一个观察者。
- 每当AiportInfo的状态发生改变时,它将调用setChanged()方法和notifyObservers()方法(通知已经注册的观察者VoiceInfo和DisplayInfo)。
- 接收到通知以后,VoiceInfo和DisplayInfo都将查询AirportInfo的状态,以便保持状态同步。根据新的状态,VoiceInfo和DisplayInfo将分别调用update()方法执行相关操作。
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
题目:
解答:
这篇关于设计模式与软件体系结构---期末复习题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!