《设计模式简答题》由会员分享,可在线阅读,更多相关《设计模式简答题(25页珍藏版)》请在金锄头文库上搜索。
1、1什么是设计模式?设计模式的目标是什么?答: 设计模式通常是对于某一类的软件设计问题的可重用的解决方案,将设计模式引入软件设计和开发过程,其目的就在于要充分利用已有的软件开发经验。2设计模式具有哪三大特点?答: (1) 在特定的场景下有可重用性,对相同类型不同问题的环境,其解决方案都有效。(2) 可传授性,即问题出现的机会很多,解决问题的方案相同,人们相对可以接受。(3) 有表示模式的名称。3GOF 设计模式常用的有几种?GOF 设计模式按照模式的目的可分为哪三类?答: 行为型,结构型,创建型4画出抽象工厂方法类图(这类题自己看书去。)5.针对接口编程,不针对实现编程的意义。答: 主题与观察者
2、都是用接口:观察者利用主题的接口向主题注册,而主题利用观察者接口通知观察者。这样可以让两者之间运作正常,又同时具有松耦合的优点。6.面向对象(OO)的原则有:答: 1. 封装变化 2. 多用组合,少用继承 3. 针对接口编程,不针对实现编程 4. 为交互对象之间的松耦合设计而努力 5. 对扩展开放,对修改关闭 6. 依赖抽象,不要依赖具体类 7. 只和朋友交谈 8. 别找我,我会找你 9. 类应该只有一个改变的理由 7. 耦合分为几种?(1) 内容耦合 (2) 公共耦合 (3) 外部耦合 (4) 控制耦合(5) 标记耦合 (6) 数据耦合 (7) 非直接耦合8.GOF模式分为几种,每种包含哪些
3、模式?答:分为3种。创建型设计模式:简单工厂模式,工厂方法模式,抽象工厂模式,建造者模式,原型模式,单例模式;结构型设计模式:适配器模式,桥接模式,组合模式,装饰模式,外观模式,轻量级模式,代理模式;行为性设计模式:责任链模式,命令模式,解释器模式,迭代器模式,中介者模式,备忘录模式,观察者模式,状态模式,策略者模式,模板方法模式,访问者模式。1不要和陌生人说话” 是(D)原则的通俗表述 A接口隔离 B里氏代换 C依赖倒转 D迪米特 2当一个抽象模型有两个方面,其中一个方面依赖于另一方面,将这两者封装在独立的对象中以使它们可以各自独立地改变和复用,可以考虑使用(A) A观察者模式 B命令模式
4、C适配器模式 D单例模式 3对于某些类来说,只有一个实例是非常重要的,例如,系统中可以有都种类型的打印机,但是只能有一个打印机假脱机,只应该一个文件系统和一个窗口管理器,为此,可以使用(C)。 A工厂模式 B享元模式 C单例模式 D外观模式 4当需要支持日志修改时,可以考虑使用(A ) A命令模式 B工厂模式 C单例模式 D适配器模式 5当需要在不同时刻指定、排列和执行请求是,可以考虑使用(A)。 A命令模式 B策略模式 C适配器模式 D责任链模式 6在需要构建一个层次结构的子系统时,可以使用门面模式定义子系统中每层的入口点,可以考虑使用(A)。 A外观模式 B工厂模式 C装饰模式 D适配器模
5、式 7希望创建一个可复用的类,该类必须能够与接口不可预订的类协同工作,可以考虑使用(B) A桥接模式 B适配器模式 C工厂模式 D装饰模式 8在面向对象的原则中,(B)表示使用多个专门的接口比使用单一的总接口要好,一个类对另一个来的依赖性应当是建立在最小的接口上的。 A单一责任原则 B接口隔离原则 C依赖倒转原则 D迪米特原则 9当需要强调一系列相关产品对象的设计以便进行联合使用,可以考虑使用(A)。 A工厂模式 B单例模式 C建造者模式 D原型模式 10当客户程序与抽象类的实现部分之间存在很大的依赖性时,可以考虑使用(D) A单例模式 B享元模式 C工厂模式 D外观模式 11在设计模式中,(
6、D)保证每个类只要单个实例。 A工厂模式 B外观模式 C享元模式 D单例模式 12(C)是指以设计复用为目的,采用一种良好定义、正规的、一致的方式记录的软件设计经验。 A架构 BUML模型 C设计模式 D设计数据 13在面向对象的的设计原则中,(A)表示高层模块不应该依赖于低层模块,都应该依赖于抽象,抽象不应该依赖于细节,细节应该依赖于抽象。 A依赖倒转原则 B开放封闭原则 C迪米特原则 D里氏替换原则 14(A)将整个软件系统划分为模型、视图和控制器三个部分。 AMVC B分层模式 C管道模式 D架构模式 15在面向对象的设计原则中,(B)表示软件实体应当对扩展开放,对修改关闭,即软件实体应
7、当在不修改的前提下扩展。 A单一责任原则 B开放封闭原则 C里氏替换原则 D迪米特原则 16在设计模式中,(C)的核心是缓存和共享 A门面模式 B工厂模式 C享元模式 D单例模式 17关于适配器模式(Adapter)说法正确的是 A A将抽象部分与实现部分分离,使得它们两部分可以独立地变化 B将一个接口转换成为客户想要的另一个接口。 C组合多个对象形成树形结构以表示整体-部分的结构层次。其对单个对象和组合对象的使用具有一致性。 D为其他对象提供一个代理或地方以控制对这个对象的访问。 18迭代器模式(Iterator)模式适用于 B A需要在不同的时间创建请求,生成请求队列,执行请求。 B需要遍
8、历访问聚集中的对象而不能暴露聚集中内部结构。 C想避免抽象方法和其实现方法绑定在一起。 D一组对象复杂地相互通信但其方法是定义明确的。 19请说出以下是运用何种设计模式 A abstract class Chess public abstract void Display(); class BlackChess : Chess public override void Display() Console.WriteLine(黑棋); class ChessFactory public Hashtable chesses = new Hashtable(); public Chess GetCh
9、ess(string key) Chess chess = (Chess)chesseskey; if (chess = null) switch (key) case 黑: chess = new BlackChess(); break; case 白: chess = new WhiteChess(); break; chesses.Add(key, chess); return chess; A享元模式(Flyweight) B工厂模式(Factory) C备忘录模式(Memento) D组合模式(Composite) 20以下哪种设计模式最符合以下场景说明: 【军情的传递】 军队中军情
10、的传递就是一个责任链,下属行动需要上级批准,所以要把行动计划报给上级,上级又传给上级,直至有人可以决定。一个士兵请求进入反恐行动组,他就会给班长发送请求,班长给排长,排长给连长,这样一直传到军长,由军长进行批准。 A桥接模式(Bridge) B外观模式(Facade) C命令模式(Command) D责任链模式(Chain of Responsibility) 21以下哪种设计模式最符合以下场景说明: D 【电视节目选择器】 电视提供了(creates)面板和遥控器两种节目选择方法,都具有“下一个”和“上一个”按钮来控制转到不同的频道。 A责任链模式(Chain of Responsibility) B观察者模式(Observer) C模板方法模式(Template Method) D迭代器模式(Iterator) 22以下哪种设计模式能够支持动态地给一个对象增加其他职责而且在职责整合时支持热插拔 B A桥接模式(Bridge) B装饰模式(Decorator) C享元模式(Flyweight) D外观模式(Facade) 23关于设计模式本质的说法,以下哪个是正确的 C