面向对象设计原则和设计模式的概念.pdf

面向对象设计原则和设计模式的概念.pdf

ID:52645605

大小:555.69 KB

页数:28页

时间:2020-03-29

面向对象设计原则和设计模式的概念.pdf_第1页
面向对象设计原则和设计模式的概念.pdf_第2页
面向对象设计原则和设计模式的概念.pdf_第3页
面向对象设计原则和设计模式的概念.pdf_第4页
面向对象设计原则和设计模式的概念.pdf_第5页
资源描述:

《面向对象设计原则和设计模式的概念.pdf》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、2013/10/14目标•了解软件复用的重要性•了解面向对象实现软件复用的几大设计原则•了解什么是设计模式西安交大软件学院内容•软件的可维护性与可复用性•单一责任原则(SRP)•“开---闭”原则(OCP)•里氏代换原则(LSP)•依赖倒转原则(DIP)•接口隔离原则(ISP)•合成/聚合复用原则(CARP)•迪米特法则(LoD)•设计模式的概念及历史西安交大软件学院12013/10/14软件的可维护性与可复用性•软件系统的可维护性•软件系统的可复用性西安交大软件学院软件系统的可维护性•软件维护的费用=软件开发的费用×2•软件的维护=软件的

2、再生•导致软件可维护性低的原因:–过于僵硬(Rigidity)•如果一个需求的变化就会引起与其相关模块的连锁变化–过于脆弱(Fragility)–复用率低(Immobility)•当发现某个软件部分对于其他系统可以复用的时候,问题是将这个软件部分剥离出来的代价和风险是巨大的–黏度过高(Viscosity)西安交大软件学院22013/10/14软件系统的设计目标•可扩展性(Extensibility)–新的性能可以很容易地加入到系统中–是“过于僵硬”的反面•灵活性(Flexibility)–可以允许代码修改平稳地发生,而不会涉及到很多其他的模

3、块–是“过于脆弱”的反面•可插入性(Pluggability)–可以很容易的将一个类抽出去,同时将另一个有同样接口的类加入进来–是“黏度过高”的反面西安交大软件学院一个“Copy”程序…•写一个程序,该程序的功能是把从键盘读入的字符输出到打印机上•为这个程序增加一个需求:需要能够增加从磁带读入字符•为这个程序增加一个需求:需要能够把读入的字符输出到屏幕上•…西安交大软件学院32013/10/14系统的可复用性•复用(Reuse)–重复使用•软件复用的好处–较高的生产效率•重复使用的软件成分可以为将来的使用节省费用–较高的软件质量•可复用的软

4、件成分总是比不能复用的软件成分有更多的质量保证–恰当使用复用可以改善系统的可维护性西安交大软件学院传统的复用•代码的剪贴复用•算法的复用–如经典的排序算法等•数据结构的复用–如队、栈等西安交大软件学院42013/10/14面向对象设计的复用•数据的抽象化和继承关系–使得概念和定义可以复用•多态性–使得实现和应用可以复用•抽象化和封装–可以保持和促进系统的可维护性•面向对象设计的复用重点的转移–不再集中在函数和算法等具体实现细节上–而是集中在最重要的含有宏观商业逻辑的抽象层次上西安交大软件学院面向对象设计复用对可维护性的支持•恰当的提高系统的

5、可复用性,可以提高系统的可扩展性–允许一个具有同样接口的新的类代替旧的类,是对抽现接口的复用–开闭原则、里氏代换原则、依赖倒转原则、组合复用原则•恰当的提高系统的可复用性,可以提高系统的灵活性–系统中的每一个模块都尽可能的保持独立,这样在修改一个模块的时候就不会向其他模块传递修改的压力–开闭原则、迪米特法则、接口隔离原则•恰当的提高系统的可复用性,可以提高系统的可插入性–将复用定格在商业逻辑层,也就是在抽象层进行复用,这样就可以与具体的实现类没有关系了–开闭原则、里氏代换原则、组合复用原则西安交大软件学院52013/10/14单一责任原则•

6、定义–一个类应该只承担一个责任,即这个类只需要面对其所承担责任的需求变化西安交大软件学院单一责任原则publicclassOrderProcessingModule{publicvoidProcess(OrderStatusMessageorderStatusMessage){//Gettheconnectionstringfromconfiguration////gogetsomedatafromthedatabase////ApplythechangestotheOrderfromtheOrderStatusMessage////Int

7、ernationalordershaveauniquesetofbusinessrules////Shiptheorderifit'sready////TransformtheOrderobjectintoaShipment//}}这个类承担了太多的责任西安交大软件学院62013/10/14单一责任原则•解决方法–将一个类所承担的多个责任分解到若干个类中西安交大软件学院单一责任原则•Demo-Modem例子–一个Modem需要做哪些事情?•Dial•Hangup•Send•Recieve西安交大软件学院72013/10/14开-闭原则•定义

8、:–一个软件实体应当对扩展开放,对修改关闭–Softwareentitiesshouldbeopenforextension,butclosedformodification.•

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

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

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