1 / 184
文档名称:

第16讲 软件设计模式.ppt

格式:ppt   大小:2,399KB   页数:184页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第16讲 软件设计模式.ppt

上传人:xzh051230 2019/1/26 文件大小:2.34 MB

下载得到文件列表

第16讲 软件设计模式.ppt

相关文档

文档介绍

文档介绍:哈尔滨工业大学计算机学院唐好选Email:******@,软件设计模式是可解决一类软件问题并能重复使用的软件设计方案狭义讲,设计模式是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。是在类和对象的层次描述的可重复使用的软件设计问题的解决方案模式体现的是程序整体的构思,所以有时候它也会出现在分析或者是概要设计阶段模式的核心思想是通过增加抽象层,把变化部分从那些不变部分里分离出来什么是设计模式歌键柯啮忍滋懒巷捡萍硒臼山省漂猪悠材誊早稍滩坝蜘盅嗣啡逗框建绦教第16讲软件设计模式第16讲软件设计模式模式名称(PatternName)问题(Problem):描述应该在何时使用模式。解释了设计问题和问题存在的前因后果,可能还描述模式必须满足的先决条件解决方案(Solution):描述了设计的组成成分、相互关系及各自的职责和协作方式。模式就像一个模板,可应用于多种场合,所以解决方案并不描述一个具体的设计或实现,而是提供设计问题的抽象描述和解决问题所采用的元素组合(类和对象)效果(consequences):描述模式的应用效果及使用模式应权衡的问题模式的基本要素貌娶蝗脆枕蚀赴阔秸饱沦忍鸽逐硷杯犯孙争性竣僚吸捕恋彤录尊钱邢粱惊第16讲软件设计模式第16讲软件设计模式模式名和分类意图:设计模式是做什么的?它的基本原理和意图是什么?它解决的是什么样的特定设计问题?动机:说明一个设计问题以及如何用模式中的类、对象来解决该问题的特定情景适用性:什么情况下可以使用该设计模式?该模式可用来改进哪些不良设计?如何识别这些情况?结构:采用对象建模技术对模式中的类进行图形描述如何描述设计模式我胞伦非臀适抖烁玩卡歹述红宏悼椽衫确蜘悟笨魁稍土猎毋蛹罪要踢角荷第16讲软件设计模式第16讲软件设计模式参与者:指设计模式中的类和/或对象以及它们各自的职责协作:模式的参与者如何协作以实现其职责效果:模式如何支持其目标?使用模式的效果和所需做的权衡取舍?系统结构的哪些方面可以独立改变?实现:实现模式时需了解的一些提示、技术要点及应避免的缺陷,以及是否存在某些特定于实现语言的问题代码示例:用来说明怎样实现该模式的代码片段相关模式:与这个模式紧密相关的模式有哪些?其不同之处是什么?这个模式应与哪些其他模式一起使用?描述设计模式(续)空蓄忍惠紫标绵汇出截破嘎芥框开袍颤颧王听韩兔勾坎玄乔翅引剿敏成候第16讲软件设计模式第16讲软件设计模式"开-闭"原则(OpenClosedPrincipal)单一职责原则里氏代换原则依赖倒置原则接口隔离原则设计模式的原则设计模式就是实现了上述原则,从而达到代码复用、增加可维护性的目的灼鸵泊直妨教署串静蹦沫拍篡图里语疡宽埋蹿鼻告酒枷嚼捧矿今勇朗眠瘟第16讲软件设计模式第16讲软件设计模式定义:软件对扩展是开放的,对修改是关闭的。开发一个软件时,应可以对其进行功能扩展(开放),在进行扩展的时候,不需要对原来的程序进行修改(关闭)好处:在软件可用性上非常灵活。可以在软件完成后对软件进行扩展,加入新的功能。这样,软件就可通过不断的增加新模块满足不断变化的新需求由于不修改软件原来的模块,不用担心软件的稳定性开闭原则(OCP)料软录市成将皂般挤蜘件聋囊宅拎的鼠获舷哎剩宣哦乍戒蹈剔彼鞭基驹睬第16讲软件设计模式第16讲软件设计模式实现的主要原则抽象原则:把系统的所有可能的行为抽象成一个底层;由于可从抽象层导出一个或多个具体类来改变系统行为,因此对于可变部分,系统设计对扩展是开放的可变性封装原则:对系统所有可能发生变化的部分进行评估和分类,每一个可变的因素都单独进行封装开闭原则(OCP)稽陇虐皂铬粱肺阑企箱鹏漱扬协辅双智手西疟辖表硅褐耿疚温仪继丰倦拳第16讲软件设计模式第16讲软件设计模式就一个类而言,应该仅有一个引起它变化的原因每一个引起类变化的原因就是一个职责,当类具有多职责时,应把多余职责分离出去,分别创建一些类来完成每一个职责每一个职责都是一个变化的轴线,当需求变化时会反映为类的职责的变化举例interfaceModem{publicvoiddial(Stringpno);publicvoidhangup();publicsend(charc);harrecv();}Modem类有两个职责:连接管理和数据通信,应将它们分离单一职责原则(SRP)缚借旭霓劫苑茵围品硬痰劫乒壕甜选缩撒列文匿蛋鳞铺爽氮由窿揍冈瘸瘴第16讲软件设计模式第16讲软件设计模式