设计模式考试.docx
《设计模式考试.docx》由会员分享,可在线阅读,更多相关《设计模式考试.docx(14页珍藏版)》请在三一办公上搜索。
1、精选优质文档-倾情为你奉上一、编程论述题:框架设计者1. 以SortTest和IntSort为例,说明什么是控制反转IoC(1)SortorTest-BubbleSort。客户依赖具体的服务BubbleSort。(2)SortorTest-IntSortIntSort】。这一步是关键。如果需要将控制模块SortorTest设计成框架,可以将控制模块SortorTest和它必须依赖的抽象类型IntSort打包。控制模块SortorTest从应用程序(上层模块)变为框架(下层模块),为控制反转(Inversion ofControl)。最好能够提供JavaDoc,并且将方法名sort 改成sooo
2、ooort。(4)Main-【SortorTest-IntSort】【SortorTest-IntSort】return m * n *n; d = Main.runFramework(f,1,3); System.out.println(d); f = (m,n)-return m +2*n ; d = Main.runFramework(f,1,3); System.out.println(d); d = Main.runFramework(m,n)-return m-n ;,1,3); System.out.println(d); 二、论述题:Parnas原则1. 什么是Parnas原则
3、,它在软件设计中的地位Parnas原则被称为接口与实现的分离。Parnas原则是软件工程中最重要的原则,之所以将它作为面向对象的三大原则,是因为“该原则在对象技术中的一系列的推广和应用,Parnas原则是功能抽象的核心,也是数据抽象、封装的底层依据”。3. 什么是针对接口编程,什么是类的接口,Java中如何限定类的接口类的接口指外界对象能够访问的、类所定义的接口的集合。通常,类中声明的public、protected域,也作为类接口的一部分。在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的,对系统设计人员来讲就不那么重要了;而各
4、个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系统设计的主要工作内容。面向接口编程就是指按照这种思想来编程。(1)接口不提供代码重用性。接口并不能使你获得代码继承的好处,它没有代码重用能力。接口的意义在于获得程序设计上的高度可维护性。(2)接口能够通过多继承进行扩展父接口。Java支持接口多继承。interface A extends B, C, D(3) 接口不能升级。定义接口时要考虑周全,因为接口有个十分尴尬的限制:如果定义了接口,将接口送给客户程序员使用,这时定义的接口就不能修改。因为在接口中添加一个方法,会导
5、致老版本接口的所有实现类的中断。为了达到在接口中增加一个方法的目的,只能派生/创建一个新的接口。(所以,Java接口天然符合OCP/开放封闭原则)三、编程论述题:装饰模式1.以类图介绍装饰模式,介绍其意图、角色。意图:装饰者模式动态地将责任附加到对象身上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。角色:抽象构件(Component)角色:给出一个抽象接口,以规范准备接收附加责任的对象。具体构件(ConcreteComponent)角色:定义一个将要接收附加责任的类。装饰(Decorator)角色:持有一个构件(Component)对象的实例,并定义一个与抽象构件接口一致的接口。具体装
6、饰(ConcreteDecorator)角色:负责给构件对象“贴上”附加的责任。2. 按照Num模型,讨论职业/ IProfession类层次。IProfession定义了方法say(String),其实现类教师/ Teacher、医生、律师按照其职业习惯给出say(String)的实现,这些实现类相当于Num模型中的Zero。而才艺/Talent类层次(相当于NextOne),可以装饰基本对象,say(String)实现中,在必要的时候会说english、在必要的时候会唱几句public interface IProfession abstract public void say(Strin
7、g s); package closure.decorator;import static yqj2065.util.Print.pln;public class Teacher implements IProfession Override public void say(String s) pln(teach(s) ; public String teach(String s) String myStyle=讲解+s+; return myStyle; package closure.decorator;public abstract class Talent implements IPr
8、ofession protected IProfession base; public Talent(IProfession base) this.base = base; package closure.decorator;public class TSong extends Talent public TSong(IProfession base) super(base); Override public void say(String s) s = this.song(s); base.say(s); / public String song(String s) String stren
9、gthen=旋律(+s+); return strengthen; 四 什么是抽象依赖原则?抽象依赖原则是开放封闭原则的主要内容,是“针对接口编程”的一种直观的说法父类型依赖子类型,定义自然数?package closure.style;public abstract class Num Override public String toString() return zero; public final class Zero extends Num public final class NextOne extends Num Num pre;/predecessor NextOne(Num
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 模式 考试
链接地址:https://www.31ppt.com/p-2762874.html