设计模式01-面向对象七大原则解析课件.ppt

设计模式01-面向对象七大原则解析课件.ppt

ID:57374978

大小:639.00 KB

页数:60页

时间:2020-08-13

设计模式01-面向对象七大原则解析课件.ppt_第1页
设计模式01-面向对象七大原则解析课件.ppt_第2页
设计模式01-面向对象七大原则解析课件.ppt_第3页
设计模式01-面向对象七大原则解析课件.ppt_第4页
设计模式01-面向对象七大原则解析课件.ppt_第5页
资源描述:

《设计模式01-面向对象七大原则解析课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、设计模式01郑州大学软件学院赵哲主要内容为什么要学习设计模式设计模式准备:7大设计原则郑州大学软件学院赵哲三个例子三个例子//电影票类classMovieTicket{privatedoubleprice;//电影票价格privatestringtype;//电影票类型……//计算打折之后的票价publicdoubleCalculate(){//学生票折后票价计算if(this.type.Equals("student")){Console.WriteLine("学生票:");returnthis.price*0.8;}//儿童票折后票价计算elseif(this

2、.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;}else{returnthis.price;//如果不满足任何打折要求,则返回原始票价}}}三个例子设计模式解决问题类过于庞大类在设计时实现多复用、高内

3、聚、低耦合容易兼容新接口等七大设计原则单一职责原则开-闭原则里氏代换原则依赖倒转原则接口隔离原则合成/聚合复用原则迪米特原则郑州大学软件学院赵哲单一职责原则一个类只有一种职责SRPSingleResponsibilityPrinciple[ˈprinsəpl]软件设计真正要做的许多内容,就是发现职责并且把职责相互分离为什么?高内聚、低耦合、多复用郑州大学软件学院赵哲一个例子郑州大学软件学院赵哲GameLogin()Exit()Left()Right()Fire()getUserName()getHighScore()思考问题这个类中有几个职责?用户是否登陆的方法跟

4、用户玩游戏的方法是否有关?获得用户信息跟其他两个职责是否有关?如何优化代码?郑州大学软件学院赵哲优化完成UML类图郑州大学软件学院赵哲userStateLogin()Exit()PlayLeft()Right()Fire()userInforgetUserName()getHighScore()内聚高还是低?耦合度呢?开-闭原则对扩展开放、对更改封闭OpenforextensionClosedformodification开放-封闭原则是面向对象设计的核心所在做一个例子:写个代码片段:完成对两个数字的加分和减法郑州大学软件学院赵哲开-闭原则大部分人的做法:郑州大学

5、软件学院赵哲若要添加乘法和除法呢?开-闭原则郑州大学软件学院赵哲OperaterGetResult(a,b)减GetResult(a,b)加GetResult(a,b)符合开闭原则回顾SRPSingleResponsibilityPrincipleGameLogin()Exit()Left()Right()Fire()getUserName()getHighScore()优化完成UML类图郑州大学软件学院赵哲userStateLogin()Exit()PlayLeft()Right()Fire()userInforgetUserName()getHighScore

6、()开闭原则OpenforextensionClosedformodificationOperaterGetResult(a,b)减GetResult(a,b)加GetResult(a,b)几个概念封装、继承、多态抽象类接口静态类=================================重载overload重写(覆盖)override里氏代换原则BarbaraLiskow在1988年发表的1972年Barbara成为麻省理工学院的教授是美国获得计算机科学博士学位的第一人郑州大学软件学院赵哲19里氏代换原则LiskowSubstitutionPrincipl

7、e(LSP):子类必须能够替换掉它们的父类型只要是基类出现的地方,一定能够出现子类!满足里氏代换原则才可以继承郑州大学软件学院赵哲20LSPAnimalanimal=newAnimal();xiaoMing.love(animal);Animalcat=newCat();xiaoMing.love(cat);LSP例子孙悟空勾掉生死簿中所有猴子的名字,那么猕猴、石猴、长臂猿等的名字是否都勾掉了?注意LSP反之不成立!《墨子小取》娣,美人也,爱娣,非爱美人也….盗,人也;恶盗,非恶人也郑州大学软件学院赵哲22LSP例子:一个例子:长方形和正方形某软件while(长>

8、=宽),将

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。