设计模式题目汇总详解.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
简述六大设计模式原则。答:设计模式六大原则(1):单一职责原则不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。?设计模式六大原则(2):里氏替换原则所有引用基类的地方必须能透明地使用其子类的对象。设计模式六大原则(3):依赖倒置原则高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。设计模式六大原则(4):接口隔离原则客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。?设计模式六大原则(5):迪米特法则一个对象应该对其他对象保持最少的了解。设计模式六大原则(6):开闭原则一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。2、抽象工厂和工厂方法的区别?P162Person类(合并的component和oncretecomponent)class Person{ public Person() { } private string name public Person(string name) { = name; } public virtual void show() {Console.WriteLine(装扮的{0},name); }}Garment类(Decorator)class Garment : Person{ protected Person componenet; //打扮 public void Decorate(Person component) {ponent = component; } public override void Show() {if(component != null){ component.Show()} }}具体服饰类(ConcreteDecorator)class TShirts : Garment{ public override void show() { Console.Writer(大T恤); base.Show() }}其余类类似......3、只根据抽象类中定义的接口来操纵对象有什么好处???答:1)?客户无须知道他们使用对象的特定类型,只须对象有客户所期望的接口。??2)?客户无须知道他们使用的对象是用什么类来实现的,他们只须知道定义接口的抽象类。4、适配器模式和装饰者模式的区别?装饰者模式 为了引入新的行为或责任。可以让新的行为加入类中,无需修改现有代码。适配器模式 为了得到客户的期望。可以让客户使用新的库的借口,而无需改变任何代码。5、好莱坞原则别调用我们,我们会调用你。适配器模式、装饰者模式和外观模式的区别适配器将一个对象包装起来以改变其接口;装饰者将一个对象包装起来以增加新的行为和责任;而外观将一群对象“包装”起来以简化其接口。7、观察者模式提供了一种对象设计可以让主题与观察者之间松耦合的原因:主题只知道观察者实现了某个接口,不需要知道观察者的具体类是谁,做了些什么或其他任何细节。任何时候我们都可以增加新的观察者。有新的类型的观察者出现时,主题的代码不需要修改。我们可以独立地复用主题或观察者。改变主题或观察者其中一方并不会影响另一方。装饰者模式、适配器模式以及外观模式的区别:装饰者:目的是为了引入新的行为或责任,无需修改现有的代码适配器:目的是为了得到客户所期望的接口,让客户使用新的库,无需改变任何代码。外观:目的简化接口,将一个或数个类的复杂的一切都隐藏在背后。9、好莱坞原则和依赖倒置原则之间的关系如何?依赖倒置原则教我们尽量避免使用具体类,而多使用抽象。而好莱坞原则是用在创建框架或组件上的一种技巧,好让低层组件能够被挂钩进计算中,而且又不会让高层组件依赖低层组件。两者的目标都是在于解耦,但是依赖倒置原则更加注重如何在设计中避免依赖。好莱坞原则教我们一个技巧,创建一个有弹性的设计,允许低层结构能够互相操作,而又防止其他类太过依赖它们。请简述工厂方法模式?工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。11、针对接口编程的含义:针对接口编程, 关键在于多态,利用多态, 程序可以针对超类型编程, 执行时会根据实际情况执行到到真正的行为, 不会被绑死在超类型的行为里面。可以说, 变量的声明类型应该是超类型。(课本,p12)画出装饰者模式的类图(课本, p91) 参看课本第91页即可。13、低层组件不可以调用高层组件中的方法吗?答:并不尽然。事实上,底层组件在结束时,常

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档