欢迎来到天天文库
浏览记录
ID:40262590
大小:192.40 KB
页数:6页
时间:2019-07-29
《20140709软件开发方法与环境期末整理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.简述“开—闭”原则的基本思想。请举出一个使用了软件“开—闭”原则的软件设计模式,其中何处体现了“开—闭”原则。(1)开闭原则(Open-ClosedPrinciple,OCP):软件实体应当对扩展开放,而对修改关闭,“开-闭”原则要求软件系统能够在不需要修改原有类的基础上,通过增加类达到扩展功能的目的。(2)Abstractfactory体现了这个原则,如果想增加一类新的products,只需在product类体系中增加各个products,然后在factory类体系结构中增加一个concretefactory就可以了,而不需
2、要对现有类做任何修改,TheOpen-closedprinciple[ocp]在不改动过模块源代码的情况下扩展模块的行为。软件实体(类模块函数等)应该是可以扩展的,但是不可以修改的。2.简述依赖例转原则的基本思想。请举出一个使用了软件依赖原则的软件设计模式,其中何处体现了依赖倒转原则。(1)依赖倒置原则(DependencyInversionPrinciple,DIP)的基本思想是:①高层模块不应该依赖于低层模块,二者都应该依赖于抽象。②抽象不应该依赖于细节,细节应该依赖于抽象。(2)Templatemethod就体现了这个原则,
3、它定义了一个操作中的算法骨架,而将一些步骤延迟到子类中,templatemethod使得子类不改变一个算法的结构,即可重定义该算法的某些特定步骤。3.简述单一职责原则的基本思想。请举出一个使用了软件单一职责的软件设计模式,其中何处体现了单一职责原则。(1)单一职责原则(SingleResponsibilityPrinciple,SRP)的基本思想是:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。就一个类而言,应该仅有一个引起它变化的原因。一个类(或者大到模块,小到方法)承担的职责越多,它被复用的可能性越小,而且如
4、果一个类承担的职责过多,就相当于将这些职责耦合在一起,当其中一个职责变化时,可能会影响其他职责的运作。类的职责主要包括两个方面:数据职责和行为职责,数据职责通过其属性来体现,而行为职责通过其方法来体现。单一职责原则是实现高内聚、低耦合的指导方针,在很多代码重构手法中都能找到它的存在,它是最简单但又最难运用的原则,需要设计人员发现类的不同职责并将其分离,而发现类的多重职责需要设计人员具有较强的分析设计能力和相关重构经验。(2)简单工厂模式体现了单一职责原则。使用了简单工厂模式之后,系统中类的个数增加,每一种具体的处理方式都封装到单独
5、的类中,而且工厂类中只有简单的判断逻辑代码,不需要关心具体的业务处理过程,很好地满足了“单一职责原则”。4.软件复用可采用类的继承方式和类的聚合方式,比较两者的优缺点。(1)聚合:一个对象拥有另一个对象或对另一个对象负责,并且聚合对象和其所有者具有相同的生命周期。聚合复用的优点:a.容器类仅能通过被包含对象的接口来对其进行访问,b.黑盒复用,因为被包含的对象的内部细节对外是不可见的。c.包装性好,d.实现上的相互依赖性比较小e.每一类只专注于一项任务f.通过获取指向其它的具有相同类型的对象应用,可以在运行期间动态地定义(对象的)6
6、组合。聚合的缺点:a.导致系统中的对象过多b.为了能够将多个不同的对象作为组合块来使用,必须仔细地对接口进行定义。(2)类继承:是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。优点:实现简单,易于扩展。缺点:a.破坏了封装性.b.白盒复用,因为父类的内部细节对于子类而言通常是可见的.c.当父类的实现更改时,子类的也不得不会随之更改.d.从父类继承来的实现将不能再运行期间进行改变.e.只能在有限的环境中使用。1.画出合成模式(Composite)的类图。举例说明一个可以应用合成模式的软件设计实例,说明其中各角色的作用。(
7、组合模式)实例:水果盘在水果盘(Plate)中有一些水果,如苹果(Apple)、香蕉(Banana)、梨子(Pear),当然大水果盘中还可以有小水果盘,现需要对盘中的水果进行遍历(吃),当然如果对一个水果盘执行“吃”方法,实际上就是吃其中的水果。使用组合模式模拟该场景。MyElement:为组合中的对象声明接口。在该角色中可以包含所有子类共有行为的声明和实现。Apple,Banana,Pear:没有子结点的叶子结点。表示叶子节点对象Plate:容器构件。表示容器节点对象,容器节点包含子节点,其子节点可以是叶子节点,也可以是容器节点
8、,它提供一个集合用于存储子节点,实现了在抽象6构件中定义的行为。模式应用:操作系统中的目录结构是一个树形结构,因此在对文件和文件夹进行操作时可以应用组合模式,例如杀毒软件在查毒或杀毒时,既可以针对一个具体文件,也可以针对一个目录。如果是对目录查毒或
此文档下载收益归作者所有