欢迎来到天天文库
浏览记录
ID:42718545
大小:408.06 KB
页数:92页
时间:2019-09-21
《软件体系结构与设计模式复习》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、教学内容复习提纲一、基本概念二、面向对象设计原则三、框架、模式、类库四、典型软件体系结构五、设计模式分类六、典型设计模式七、模式的应用一、基本概念软件体系结构软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。设计模式设计模式(pattern)是从许多优秀的软件系统中总结出的成功的可复用的设计方案。软件框架在给定问题领域范围内建立起可重用解决设计问题而互相间协作的一组类的集合(它典型包括了具备缺省行为的大量对象)二、面向对象设计原则面向抽象原则当设计一个类时,不让该类面向具体的类,而是面向抽象类或接口,即所设计类中的重要数
2、据是抽象类或接口声明的变量,而不是具体类声明的变量。开-闭原则所谓“开-闭原则”(Open-ClosedPrinciple)就是让你的设计应当对扩展开放,对修改关闭。二、面向对象设计原则多用组合少用继承原则之所以提倡多用组合,少用继承,是因为在许多设计中,人们希望系统的类之间尽量是低耦合的关系,而不希望是强偶合关系。即在许多情况下需要避开继承的缺点,而需要组合的优点。三、框架、模式和类库框架和模式的关系设计模式研究的是一个设计问题的解决方法,一个模式可应用于不同的框架和被不同的语言所实现;而框架则是一个应用的体系结构,是一种或多种设计模式和代码的混合体虽然它
3、们有所不同,但却共同致力于使人们的设计可以被重用,在思想上存在着统一性的特点,因而设计模式的思想可以在框架设计中进行应用。三、框架、模式和类库框架和模式的关系框架是软件,而设计模式是软件的知识体,提升框架的设计水平。框架面向领域,设计模式是通用的。设计模式可以在框架三、框架、模式、类库框架和类库的关系行为相对于协议“不是访问我们,而是我们访问你”实现相对于设计四、典型软件体系结构客户/服务器C/S体系结构有三个主要组成部分:数据库服务器、客户应用程序和网络。四、典型软件体系结构四、典型软件体系结构三层客户/服务器四、典型软件体系结构浏览器/服务器B/S体系结
4、构主要是利用不断成熟的WWW浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本。从某种程度上来说,B/S结构是一种全新的软件体系结构。四、典型软件体系结构四、典型软件体系结构反射式体系结构四、典型软件体系结构StructuralReflectionStructuralreflectionisconcernedwiththeabilityofthelanguagetoreflectbothaboutthestructureoftheprogramaswellastheprogramcurrent
5、lyexecuted.四、典型软件体系结构BehavioralReflectionBehavioralreflectionistheabilityoftheprogramminglanguagetoreflectaboutitsownsemanticsandimplementationaswellasthedataandimplementationoftheruntimesystem.五、设计模式分类创建型模式工厂方法:定义一个用于创建对象的接口,让子类决定实例化哪一个类。生成器模式:将一个复杂对象的构建与它的表示分离。原型模式:通过复制原型创建新的对象。单
6、件模式:保证一个类仅有一个实例。六、设计模式分类行为型模式责任链模式:避免请求的发送者和接收者之间的耦合关系。中介者模式:用一个中介对象来封装一系列的对象交互。观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖于它的对象都得到通知并被自动更新。状态模式:允许一个对象在其内部状态改变时改变它的行为。策略模式:定义一系列算法,把它们一个个封装起来,并且使它们可相互替换。四、设计模式分类结构型模式适配器模式:将一个类的接口转换成客户希望的另外一个接口。组合模式:将对象组合成树形结构以表示“部分-整体”的层次关系。装饰模式:动态地给对
7、象添加一些额外的职责。七、典型设计模式组合模式意图将对象组合成数形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。组合模式结构组合模式适用场合想表示对象的部分-整体层次结构希望用户用一致的方式处理个体对象和组合对象。示例importjava.applet.*;importjava.awt.*;publicclassCompositeextendsApplet{Picturepict=newPicture();publicvoidinit(){pict.add(newCircle(newPoint(10,10
8、),50));pict.add(newRectang
此文档下载收益归作者所有