欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年软件设计架构试卷 .pdf

    • 资源ID:25457686       资源大小:230.56KB        全文页数:9页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年软件设计架构试卷 .pdf

    一、选择题 (每题 2 分,共 24 分) 1. 以下关于构造函数的说法,其中错误的是( B )A.构造函数的函数名必须与类名相同B.构造函数可以指定返回类型C.构造函数可以带有参数D.构造函数可以重载2. 类的构造函数是在( B )调用的。A. 类创建时 B. 创建对象时C. 删除对象时 D. 不自动调用3. 在以下关于方法重载的说法,其中错误的是( D )A.方法可以通过指定不同的返回值类型实现重载B.方法可以通过指定不同的参数个数实现重载C.方法可以通过指定不同的参数类型实现重载D.方法可以通过指定不同的参数顺序实现重载4. 在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应该将该方法声明为( D )A.sealed B.public C.virtual D.override 5. ( D )表示了对象间的 is-a的关系。A. 组合 B. 引用 C. 聚合 D. 继承6. 关于单一职责原则,以下叙述错误的是( C ) 。A. 一个类只负责一个功能领域中的相应职责B. 就一个类而言,应该有且权有一个引起它变化的原因C. 一个类承担的职责越多,越容易复用,被复用的可能性越大D. 一个类承担的职责过多时需要将职责进行分离,将不同的职责封装在不同的类中7. 某系统通过使用配置文件,可以在不修改源代码的情况下更换数据库驱动程序,该系统满足( B )A. 里氏代换原则 B. 接口隔离原则 C. 单一职责原则 D. 开闭原则8. 一个软件实体应尽可能少地与其他软件实体发生相互作用,这样,当一个模块修改时,就会尽量少的影响其他模块, 扩展会相对容易。 这是( A )的定义。A. 迪米特法则 B. 接口隔离原则 C. 里氏代换原则 D. 合成复用原则9. 当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用( A )模式。A.创建型 B.结构型 C行为型 D.以上都可以10. 在观察者模式中,表述错误的是( C )精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 9 页A.观察者角色的更新是被动的。B.被观察者可以通知观察者进行更新C.观察者可以改变被观察者的状态, 再由被观察者通知所有观察者依据被观察者的状态进行。D.以上表述全部错误11. 下面的类图表示的是哪个设计模式?( A ) 。A.抽象工厂模式B.观察者模式C.策略模式D.桥接模式12. 在采用“ 4+1”视图模型来描述软件体系结构中,系统工程师侧重于( D ) A. 实现视图 B. 进程视图 C. 逻辑视图 D. 部署视图二、填空题(每空1 分,共 11 分)1. 类体内成员有3 个访问权限,说明它们的关键字分别是public 、private和protected 。2. 请从工厂、抽象工厂、原型、单例、外观、适配器、组合、代理、命令、迭代器、观察者、策略模式中选择合适的模式填入下列的空缺中。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 9 页1) 工厂模式中,父类负责定义创建对象的公共接口,子类决定要创建的具体类是哪一个。2) 单例模式确保某一个类仅有一个实例,并自行实例化并向整个系统提供这个实例。3) 外观模式定义了一个高层接口, 这个接口使得这一子系统更加容易使用,为子系统中的一组接口提供一个一致的界面,简化了一群类的接口。4) 策略模式在对象的集合之中游走,而不暴露集合的实现。5) 观察者 模式定义对象间的一种一对多的依赖关系, 当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新,也就是让对象能在状态改变时被通知。3. 三层架构中的三层分别是指逻辑层、视图层和模型层。三、问答题(每题5 分,共 20 分)1. 简述“开闭”原则的基本思想。请举出一个使用了软件“开闭”原则的软件设计模式,其中何处体现了“开闭”原则?开闭原则:一个软件实体像类、模块和函数应该对扩展开放,对修改关闭。抽象工厂模式:当添加新的产品族时,符合开闭原则,新增加的产品族,只需要对应增加一个新的具体工厂,对已有代码无须做任何修改。2. 抽象类和接口有什么区别?(1 ) 、一个类只能继承一个抽象类,而一个类却可以实现多个接口;(2 ) 、接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;(3 ) 、 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;(4 ) 、接口只能包含方法声明,而抽象类还可以包含方法的定义。3. GOF 模式分为几种,每种包含哪些模式?以及这三种模式的作用. 创建型模式:简单工厂模式;工厂方法模式;抽象工厂模式(Abstract Factory) ;创建者模式;原型模式;单例模式。作用:抽象了实例化过程,帮助一个系统独立于如何创建、组合和表示他的那些对象。一个类创建型模式使用继承改变被实例化的类结构型模式:外观模式;适配器模式;代理模式;装饰模式;组合模式;桥模式;享元模式作用:程序的结构上解决模块之间的耦合问题行为型模式:观察者模式;状态模式;策略模式;命令模式;访问者模式;解释器模式;备忘录模式;职责链模式;访问者模式;模板方法模式;迭代器模式作用:分配算法和对象间的职责精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 9 页4、简述框架与架构的区别 ? 框架是软件,架构不是软件框架:应用的半成品,就是一组组件,供你选用完成你自己的系统架构:是关于软件如何设计的重要策略。软件架构决策设计到如何将软件系统分解成不同的部分、各部分之间的静态结构关系和动态交互关系等四、程序填空(每空2 分,共 20分)1. 某系统提供一个简单计算器, 具有简单的加法和减法功能, 系统可以根据用户的选择实例化相应的操作类,现使用简单工厂模式设计该系统。public class Operation private double _numberA = 0; private double _numberB = 0; public virtual double GetResult() double result = 0; return result; / / 数字 A / public double NumberA get return _numberA; set _numberA = value; / / 数字 B 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 9 页 / public double NumberB get return _numberB; set _numberB = value; class OperationAdd : Operation public override double GetResult() double result = 0; result = NumberA + NumberB; return result; / / 减法类 / class OperationSub : Operation public override double GetResult() double result = 0; result = NumberA - NumberB; return result; 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 9 页 class OperationFactory public static createOperate(string operate) Operation oper = null; switch (operate) case +: oper = new OperationAdd(); break; case -: oper = new OperationSub(); break; return oper; class Program static void Main(string args) Operation oper; oper = OperationFactory.createOperate(+); oper.NumberA = 3; oper.NumberB = 5.5; Console.WriteLine( oper.GetResult() ); Console.ReadKey(); 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 9 页 2. 某公司开发儿童玩具汽车,该玩具汽车在移动过程中伴随着灯光闪烁和声音提示,在该公司以往的产品中已经实现了控制灯光闪烁和声音提示的程序,为了重用先前的代码并且使得汽车控制软件具有更好的灵活性和扩展性,使用适配器模式设计该系统。 在代码中 CarController类是汽车控制器, 它包括三个方法用于控制汽车的行为,其中move()用于控制汽车的移动,play() 用于控制汽车的声音, light()用于控制汽车灯光的闪烁, play()和 light()是抽象方法。interface Sound / 抽象声音类 void phonate(); class ConcreteSound : Sound / 具体声音类 public void phonate() Console.WriteLine(声音播放! ); interface Lamp / 抽象灯光类 void twinkle(); class ConcreteLamp : Lamp / 具体灯光类 public void twinkle() Console.WriteLine(灯光闪烁! ); interface CarController / 汽车控制器 public void move() 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 9 页 Console.WriteLine(汽车移动! ); public abstract void play(); public abstract void light(); class CarAdapter : CarController / 汽车适配器 private Sound sound; private Lamp lamp; public CarAdapter(Sound sound, Lamp lamp) this.sound=sound ; this.lamp=lamp ; public override void play() sound.phonate() ; / 声音播放 public override void light() lamp.twinkle(); / 灯光闪烁 class Program static void Main(string args) Sound sound; Lamp lamp; CarController car; sound = new ConcreteSound(); lamp = new ConcreteLamp(); car = new CarAdapter(sound,lamp ); car.move(); car.play(); 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 9 页 car.light(); Console.ReadKey(); 五、编程题( 25分)1. 用观察者模式C# 实现。在气象观测中,它能够追踪目前的天气状况,包括温度和湿度。实现一个布告板, 能够分别显示目前的状态, 气象统计和简单的预报。当气象站中获取最新的测量数据时,三种布告板必须实时更新。(10分) 。2. 用装饰者模式 C# 设计实现图书馆1 楼的手抓饼销售程序,并画出相应的类图(15分) 。程序代码请见压缩包:UML 类图:ConcreteComponent+sampleOperation ()money ().: String: doubleDirectorabstract -component : Component+Director ()sampleOperation ()money ().: void: String: doubleComponent+sampleOperation ()money ().: String: doubleConcreteDirector1+ConcreteDirector1 ()sampleOperation ()money ().: void: String: doubleConcreteDirector2+ConcreteDirector1 ()sampleOperation ()money ().: void: String: double精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 9 页

    注意事项

    本文(2022年软件设计架构试卷 .pdf)为本站会员(Q****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开