欢迎来到天天文库
浏览记录
ID:50780780
大小:3.65 MB
页数:45页
时间:2020-03-14
《设计模式概述ppt课件 (3).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、设计模式概述1大纲引言设计模式的诞生与发展设计模式的定义与分类GoF设计模式简介设计模式的优点2引言从三个实例说起……实例一:庞大的跨平台图像浏览系统实例二:不够灵活的影院售票系统实例三:重用第三方算法库时面临的问题3引言庞大的跨平台图像浏览系统实例说明某软件公司要开发一个跨平台图像浏览系统,要求该系统能够显示BMP、JPG、GIF、PNG等多种格式的文件,并且能够在Windows、Linux、Unix等多个操作系统上运行。系统首先将各种格式的文件解析为像素矩阵(Matrix),然后将像素矩阵显示在屏幕上,在不同的操作系统中可以调用不同的绘制函数来
2、绘制像素矩阵。4引言庞大的跨平台图像浏览系统初始设计方案5引言庞大的跨平台图像浏览系统问题(1)采用了多层继承结构,导致系统中类的个数急剧增加,具体层的类的个数=所支持的图像文件格式数×所支持的操作系统数(2)系统扩展麻烦,无论是增加新的图像文件格式还是增加新的操作系统,都需要增加大量的具体类,这将导致系统变得非常庞大,增加运行和维护开销6引言不够灵活的影院售票系统实例说明某软件公司为某电影院开发了一套影院售票系统,在该系统中需要为不同类型的用户提供不同的电影票打折方式,具体打折方案如下:(1)学生凭学生证可享受票价8折优惠;(2)年龄在10周岁及
3、以下的儿童可享受每张票减免10元的优惠(原始票价需大于等于20元);(3)影院VIP用户除享受票价半价优惠外还可进行积分,积分累计到一定额度可换取电影院赠送的奖品。该系统在将来可能还要根据需要引入新的打折方式。7引言不够灵活的影院售票系统初始实现方案//电影票类classMovieTicket{privatedoubleprice;//电影票价格privatestringtype;//电影票类型……//计算打折之后的票价publicdoubleCalculate(){//学生票折后票价计算if(this.type.Equals("student")
4、){Console.WriteLine("学生票:");returnthis.price*0.8;}//儿童票折后票价计算elseif(this.type.Equals("children")&&this.price>=20){Console.WriteLine("儿童票:");returnthis.price-10;}//VIP票折后票价计算elseif(this.type.Equals("vip")){Console.WriteLine("VIP票:");Console.WriteLine("增加积分!");returnthis.price*0
5、.5;}else{returnthis.price;//如果不满足任何打折要求,则返回原始票价}}}8引言不够灵活的影院售票系统问题(1)MovieTicket类的Calculate()方法非常庞大,它包含各种打折算法的实现代码,在代码中出现了较长的条件转移语句,不利于测试和维护(2)在增加新的打折算法或者对原有打折算法进行修改时必须修改MovieTicket类的源代码,系统的灵活性和可扩展性较差(3)算法的复用性差,如果另一个系统需要重用某些打折算法,只能通过对源代码进行复制粘贴来重用,无法单独重用其中的某个或某些算法9引言重用第三方算法库时面临
6、的问题实例说明某软件公司在开发一个银行业务处理系统时需要对其中的机密数据进行加密处理,通过分析发现,用于加密的程序已经存在于一个第三方算法库中,但是没有该算法库的源代码。在系统初始设计阶段,已定义数据操作接口DataOperation,且该接口已被很多同事使用,对该接口的修改势必导致大量代码需要产生改动。10引言重用第三方算法库时面临的问题问题如何在既不修改现有接口又不需要算法库源代码的基础上能够实现第三方算法库的重用是该软件公司开发人员必须面对的问题。11引言如何解决?12引言欢迎进入模式世界!13设计模式的诞生与发展建筑中的模式模式(Patte
7、rn)起源于建筑业而非软件业模式之父——美国加利佛尼亚大学环境结构中心研究所所长ChristopherAlexander(克里斯托弗·亚历山大)博士20世纪70年代,亚历山大博士研究了为解决同一个问题而设计出的不同建筑结构。发现了那些高质量的设计中的相似性。他用“模式语言”来指代这种相似性。由亚历山大博士发现并记录的这些模块仅仅是涉及诸如建筑物,花园和道路之类的建筑学方面的模式14设计模式的诞生与发展ChristopherAlexander15设计模式的诞生与发展模式的诞生与定义Alexander给出了关于模式的经典定义:每个模式都描述了一个在我们
8、周围环境中不断重复发生的问题,然后描述了该问题的解决方案的核心,通过这种方式,人们可以无数次地重用那些已有的解决方案,无须
此文档下载收益归作者所有