欢迎来到天天文库
浏览记录
ID:40557554
大小:160.00 KB
页数:16页
时间:2019-08-04
《java设计模式选择题复习》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、工厂系列模式的优缺点:1.让用户的代码和某个特定类的子类的代码解耦用户不必知道它所使用的对象是怎样创建的,只需知道该对象有哪些方法2.抽象工厂模式可以为用户创建一系列相关的对象,使用户和创建这些对象的类脱耦MVC模式是不是一种设计模式?为什么MVC不是设计模式,应该是框架/架构模式,因为它的定义是抽象的,没有足够的细节描述使你直接去实现,而只能根据MVC的概念和思想,用几个设计模式组合实现。举出一个生活中使用装饰者模式的例子,用程序实现思路举个生活中的例子,俗话说“人在衣着马在鞍”,把这就话用装饰者模式的语境翻译一
2、下,“人通过漂亮的衣服装饰后,男人变帅了,女人变漂亮了;”。对应上面的类图,这里人对应于ConcreteComponent,而漂亮衣服则对应于ConcreteDecorator;设计模式如何分类,每一个类别都有什么特征?设计模式分为3类,分别是:创建型模式、行为型模式、结构型模式。创建型特点:避免用户直接使用new运算符创建对象。行为型特点:怎样合理的设计对象之间的交互通信,以及怎样合理的为对象分配职结构型特点:主要用于处理类或对象的组合Javajdk中使用了哪些设计模式1.单例2.静态工厂3.工厂方法4.抽象工厂
3、5.构造者6.原型7.适配器8桥接9.组合10.装饰器11.外观12.享元14.代理15.迭代器16.观察者17.协调者18.模板方法19.策略20.责任链21.命令22.空对象25.解释器面向对象的设计原则有哪些?开闭原则、面向抽象的原则(依赖倒转原则)、多用组合少用继承原则、高内聚-低耦合原则。观察者模式的推拉有什么不同?使用场景推,具体主题将变化后的数据全部交给具体观察者。场景:当具体主题认为具体观察者需要这些变换后的数据时,往往采用推数据方式;拉,具体主题不将变化后的数据交给具体观察者,而是提供获得这些数据
4、的方法。场景:当具体主题不知道具体观察者是否需要这些变换后的数据时,往往采用拉数据的方式。策略模式和工厂模式有什么不同?策略模式定义了一系列算法,将他们一个个封装,并且他们之间可以相互替换;工厂模式定义一个创建对象的接口,让子类决定实例化哪一个类5观察者模式的推拉有什么不同?适用场景现在要说的分歧在这里:“推”的方式是指,Subject维护一份观察者的列表,每当有更新发生,Subject会把更新消息主动推送到各个Observer去。“拉”的方式是指,各个Observer维护各自所关心的Subject列表,自行决定在
5、合适的时间去Subject获取相应的更新数据。“推”的好处包括:1、高效。如果没有更新发生,不会有任何更新消息推送的动作,即每次消息推送都发生在确确实实的更新事件之后,都是有意义的。2、实时。事件发生后的第一时间即可触发通知操作。3、可以由Subject确立通知的时间,可以避开一些繁忙时间。4、可以表达出不同事件发生的先后顺序。 缺点:精确性较差,不能保证能把信息送到客户器。“拉”的好处包括:1、如果观察者众多,Subject来维护订阅者的列表,可能困难,或者臃肿,把订阅关系解脱到Observer去完成。2、Obs
6、erver可以不理会它不关心的变更事件,只需要去获取自己感兴趣的事件即可。3、Observer可以自行决定获取更新事件的时间。4、拉的形式可以让Subject更好地控制各个Observer每次查询更新的访问权限。缺点:不能够及时获取系统的变更。6策略模式和工厂模式有什么不同?一般情况下,策略模式是为了解决的是策略的切换与扩展,更简洁的说是定义策略族,分别封装起来,让他们之间可以相互替换,策略模式让策略的变化独立于使用策略的客户。可以应用的场景有优惠系统、工资计算系统等。而工厂模式主要解决的是资源的统一分发,将对象的
7、创建完全独立出来,让对象的创建和具体的使用客户无关。主要应用在多数据库选择,类库文件加载等。很明显的是策略模式是开放的,作为一个主体你的活动范围是全程的,大多数事情要你自己亲力亲为。而工厂模式作是封闭的,作为主体的你的活动范围是有限的,很多事情都帮组你做好了,你直接“点”就可以了。7装饰者模式和适配器模式的比较1.关于新职责:适配器也可以在转换时增加新的职责,但主要目的不在此。装饰者模式主要是给被装饰者增加新职责的。2.关于原接口:适配器模式是用新接口来调用原接口,原接口对新系统是不可见或者说不可用的。装饰者模式原
8、封不动的使用原接口,系统对装饰的对象也通过原接口来完成使用。(增加新接口的装饰者模式可以认为是其变种--“半透明”装饰者)3.关于其包裹的对象:适配器是知道被适配者的详细情况的(就是那个类或那个接口)。装饰者只知道其接口是什么,至于其具体类型(是基类还是其他派生类)只有在运行期间才知道。8为什么要用设计模式,设计模式有哪些优点设计模式的优点:1、设计模式融合
此文档下载收益归作者所有