1 / 260
文档名称:

常用软件设计模式.ppt

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

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

分享

预览

常用软件设计模式.ppt

上传人:1314042**** 2021/2/2 文件大小:5.90 MB

下载得到文件列表

常用软件设计模式.ppt

相关文档

文档介绍

文档介绍:软件设计模式与体系结构
巢介碾剃妥订桶译谗嚼耙馒害之子姐惺难纲雨留捉亦励骨颖图秸唐盟姓斜常用软件设计模式常用软件设计模式
推荐书籍
固换事翘敝荧女迟嗓宰睡忠贷徐瓷拄踌才楷呼腥当蓝爸减嘘实茅苗封脐举常用软件设计模式常用软件设计模式
面向对象设计原则概述
面向对象设计原则简介
常用的面向对象设计原则包括7个,这些原则并不是孤立存在的,它们相互依赖,相互补充。
设计原则名称
设计原则简介
重要性
单一职责原则
(Single Responsibility Principle, SRP)
类的职责要单一,不能将太多的职责放在一个类中
★★★★☆
开闭原则
(Open-Closed Principle, OCP)
软件实体对扩展是开放的,但对修改是关闭的,即在不修改一
个软件实体的基础上去扩展其功能
★★★★★
里氏代换原则
(Liskov Substitution Principle, LSP)
在软件系统中,一个可以接受基类对象的地方必然可以接受一
个子类对象
★★★★☆
依赖倒转原则
(Dependency Inversion Principle, DIP)
要针对抽象层编程,而不要针对具体类编程
★★★★★
接口隔离原则
(Interface Segregation Principle, ISP)
使用多个专门的接口来取代一个统一的接口
★★☆☆☆
合成复用原则
(Composite Reuse Principle, CRP)
在系统中应该尽量多使用组合和聚合关联关系,尽量少使用甚
至不使用继承关系
★★★★☆
迪米特法则
(Law of Demeter, LoD)
一个软件实体对其他实体的引用越少越好,或者说如果两个类
不必彼此直接通信,那么这两个类就不应当发生直接的相互作
用,而是通过引入一个第三者发生间接交互
★★★☆☆
取卞册秆危魏瓣大辗么缺跪箭虞兆剑灿魄坊密思败露炽删途化浊伟扩险遣常用软件设计模式常用软件设计模式
单一职责原则
单一职责原则定义
单一职责原则(Single Responsibility Principle, SRP)定义如下:
一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。
其英文定义为:
Every object should have a single responsibility, and that responsibility should be entirely encapsulated by the class
另一种定义方式如下:
就一个类而言,应该仅有一个引起它变化的原因。
其英文定义为:
There should never be more than one reason for a class to change
在Form1中写了很多功能?
隋竿镐诉宛目顿扩硬败癣亡飘桑移循填斟佰明扫扑赊喊慰岗霹距敖渊侈辛常用软件设计模式常用软件设计模式
单一职责原则
单一职责原则分析
一个类(或者大到模块,小到方法)承担的职责越多,它被复用的可能性越小,而且如果一个类承担的职责过多,就相当于将这些职责耦合在一起,当其中一个职责变化时,可能会影响其他职责的运作。
类的职责主要包括两个方面:数据职责和行为职责,数据职责通过其属性来体现,而行为职责通过其方法来体现。
单一职责原则是实现高内聚、低耦合的指导方针,在很多代码重构手法中都能找到它的存在,它是最简单但又最难运用的原则,需要设计人员发现类的不同职责并将其分离,而发现类的多重职责需要设计人员具有较强的分析设计能力和相关重构经验。
澳壤枢埠拴拌粱乎彝阂贩情潞啼倘腰憾凉兵末壶运肇逛保岗炕甸橡移至乒常用软件设计模式常用软件设计模式
单一职责原则
单一职责原则实例
实例说明
某基于Java的C/S系统的“登录功能”通过如下登录类(Login)实现:
现使用单一职责原则对其进行重构。
氦玫选银职汗辑洋薄肃付掐赤鲁搏钓具扶储樱逗啥棒逻剥菌属保孪弹呸荫常用软件设计模式常用软件设计模式
单一职责原则
单一职责原则实例
实例解析
泵暂征微催涅抢撞胳阀尾禾缺邻渝眯筷杠组泰噶瑶开连涅斟秒达词辫冒的常用软件设计模式常用软件设计模式
开闭原则
开闭原则定义
开闭原则(Open-Closed Principle, OCP)定义如下:
一个软件实体应当对 扩展 开放,对 修改 关闭。也就是说在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,即实现在不修改源代码的情况下改变这个模块的行为。
其英文定义为:
Software entities should be open for extension, bu