[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fewx5YmL953cYzv3wjZ7Y_iG_mU1xjGiNBZFIdd-HyMI":3},{"answer":4,"createTime":5,"id":6,"options":7,"origin":12,"question":19,"related":20,"source":30,"type":31},[],"2024-05-29 09:41:30",146917719,[8,9,10,11],"组合","状态","中介者","策略",{"count":13,"courseId":14,"courseImg":15,"courseName":16,"workId":17,"workName":18},12,"24e9b4667f359b291a0d76a81ee8fdb7","https:\u002F\u002Ftihai-oss-cloud.itihey.com\u002Fimg\u002Fcd6aa804f56468e1fa7bc4a2057046b9.png","软件体系结构与设计模式","work_35341966","实验13——策略模式和访问者模式(21级)","在图形界面系统开发中,如果界面组件之间存在较为复杂的相互调用关系,为了降低界面组件之间的耦合度,让它们不产生直接的相互引用,可以使用( )设计模式",[21,32,41,50,59,66,69,78,87,96],{"answer":22,"createTime":5,"id":23,"options":24,"question":29,"source":30,"type":31},[],146917714,[25,26,27,28],"银行账户根据余额不同拥有不同的存取款操作","游戏软件中根据虚拟角色级别的不同拥有不同的权限","某软件在不同的操作系统中呈现不同的外观","会员系统中会员等级不同可以实现不同的行为","场景( )不是状态模式的实例","v1",0,{"answer":33,"createTime":5,"id":34,"options":35,"question":40,"source":30,"type":31},[],146917715,[36,37,38,39],"状态模式允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类","状态模式中引入了一个抽象类来专门表示对象的状态,而具体的状态都继承了该类,并实现了不同状态的行为,包括各种状态之间的转换","状态模式使得状态的变化更加清晰明了,也很容易创建对象的新状态","状态模式完全符合开闭原则,增加新的状态类无须对原有类库进行任何修改","以下关于状态模式叙述错误的是( )",{"answer":42,"createTime":5,"id":43,"options":44,"question":49,"source":30,"type":31},[],146917716,[45,46,47,48],"策略模式是对算法的包装,是把算法的责任和算法本身分隔开,委派给不同的对象管理","在Context类中,维护了对各个ConcreteStrategy的引用实例,提供了一个接口供ConcreteStrategy存储数据","策略模式让算法独立于使用它的客户而变化","策略模式中,定义一系列算法,并将每一个算法封装起来,并让它们可以相互替换","以下关于策略模式叙述错误的是( )",{"answer":51,"createTime":5,"id":52,"options":53,"question":58,"source":30,"type":31},[],146917717,[54,55,56,57],"策略模式中,客户端无须知道所有的策略类,系统必须自行提供一个策略类","策略模式可以避免使用多重条件转移语句","策略模式会导致产生大量的策略类","策略模式提供了管理相关算法族的办法","以下关于策略模式的优缺点描述错误的是( )",{"answer":60,"createTime":5,"id":61,"options":62,"question":65,"source":30,"type":31},[],146917718,[9,11,63,64],"工厂方法","模板方法","某系统中用户可自行动态选择某种排序算法之一(如选择排序、冒泡排序、插入排序)来实现某功能,该系统的设计可以使用( )设计模式",{"answer":67,"createTime":5,"id":6,"options":68,"question":19,"source":30,"type":31},[],[8,9,10,11],{"answer":70,"createTime":5,"id":71,"options":72,"question":77,"source":30,"type":31},[],146917720,[73,74,75,76],"中介者模式用一个中介对象来封装一系列的对象交互","中介者模式与观察者模式均可以用于降低系统的耦合度,中介者模式用于处理对象之间一对多的调用关系,而观察者模式用于处理多对多的调用关系","中介者模式简化了对象之间的交互,将原本难以理解的网状结构转换成相对简单的星型结构","中介者将原本分布于多个对象间的行为集中在一起,改变这些行为只需生成新的中介者子类即可,这使各个同事类可被重用","以下关于中介者模式的叙述错误的是( )",{"answer":79,"createTime":5,"id":80,"options":81,"question":86,"source":30,"type":31},[],146917721,[82,83,84,85],"访问者模式表示一个作用于某对象结构中的各元素的操作","访问者模式使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作","在访问者模式中,ObjectStructure提供一个高层接口以允许访问者访问它的元素","访问者模式使得增加新的元素变得很简单","以下关于访问者模式的叙述错误的是( )",{"answer":88,"createTime":5,"id":89,"options":90,"question":95,"source":30,"type":31},[],146917722,[91,92,93,94],"它实现了accept()方法,该操作以一个具体访问者作为参数","可以提供一个高层的接口以允许访问者访问它的元素","可以是一个组合模式或是一个集合","能够枚举其中包含的元素","关于访问者模式中的对象结构,以下描述错误的是( )",{"answer":97,"createTime":5,"id":98,"options":99,"question":104,"source":30,"type":31},[],146917723,[100,101,102,103],"适配器或命令","工厂方法或外观","中介者或观察者","策略或模板方法","在某飞行器模拟系统中,用户通过调节参数可以得到飞机的燃油消耗曲线和发动机燃烧效率曲线,用户可以向文本框输入参数值,也可以通过滑块来设置参数值,还可以通过下拉框来选择参数值,系统界面如下图所示,在该系统的设计中可以使用( )设计模式. \u003Cimg src=\"https:\u002F\u002Ftihai-oss-cloud.itihey.com\u002Fimg\u002F5da5622268b8cc6171138c299b39f854.png\">"]