面向对象分析与设计概念与原则

上传人:夏** 文档编号:488037626 上传时间:2022-12-14 格式:DOC 页数:6 大小:45.50KB
返回 下载 相关 举报
面向对象分析与设计概念与原则_第1页
第1页 / 共6页
面向对象分析与设计概念与原则_第2页
第2页 / 共6页
面向对象分析与设计概念与原则_第3页
第3页 / 共6页
面向对象分析与设计概念与原则_第4页
第4页 / 共6页
面向对象分析与设计概念与原则_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《面向对象分析与设计概念与原则》由会员分享,可在线阅读,更多相关《面向对象分析与设计概念与原则(6页珍藏版)》请在金锄头文库上搜索。

1、OOA/D面向对象:*封装变化之物*针对接口编码,而不是对实现应用程序中的每一个类只有一个改变的理由类是关于行为与功能的目的:使用已被证实的 OO设计原则形成更可维护、更具灵活性以及更易扩展的软件一、面向对象基本概念1.1 )对象对象是要进行研究的任何事物。是运行期的基本实体,它是一个封装了数据和操作这些数据的代码的逻辑实体。1.2 )类类是具有相同或相似性质的对象的抽象(对某种类型的对象定义变量和方法的原型)。1.3 )类与对象的关系对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。一个对象所包含的所有数据和代码可以通过类来构造。1.4 )消息消息是对象之间进行通信的一种规格说明。

2、一般它由三部分组成:接收消息的对象、消息名及实际变元。对象之间需要相互沟通,沟通的途径就是对象之间收发信息。消息内容包括接收消息的对象的标识,需要调用的函 数的标识,以及必要的信息。消息传递的概念使得对现实世界的描述更容易。1.5 )动态绑定动态绑定是指在执行期间(非编译期)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法二、面向对象的特性/要素2.1 )封装(Encapsulation)封装就是事物抽象为类,把对外接口暴露,将实现和内部数据隐藏。2.2 )继承(Inheritanee)继承是让某个类型的对象获得另一个类型的对象的特征。继承性是子类自动共享父类数据结构和方法的机制,这

3、是类之间的一种关系。在定义和实现一个类的时候,可以在 一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。2.3 )多态(Polymorphism)多态是指对象在不同时刻体现为不同类型的能力 多态的形式:? 基类继承式多态? 接口实现式多态三、面向对象与面向过程有什么区别?一个核心区别是:如何分配职责。过程式是一系列命令和函数的连续调用,依赖贯穿整个项目;面向对象则将职责分配到专门的对象中,尽量减少依赖。四、面向对象分析与设计基本概念4.1 )什么是分析(analysis) ?分析是对问题和需求的调查研究 。4.2 )什么是设计(design)

4、?设计是定义系统组成并组织组件间关系的过程。设计师满足需求的概念上的解决方案(在软件方面和硬件方面)分析和设计可以概括为:(分析是)做正确的事和(设计是)做正确的事4.3 )面向对象分析在面向对象分析(object-oriented analysis )过程中,强调在问题领域内发现和描述对象(或概念)。4.4 )面向对象设计在面向对象设计(object-orienteddesign,简称对象设计)过程中,强调定义软件对象以及它们如何协作以实现需求。4.5 )职责:引起类变化的原因。4.6 )内聚:一个模块内部各成分之间相关联程度的度量。4.7 )耦合:类依赖其他类4.8 )正交:将职责相关的组

5、件紧紧组合在一起,与外部系统环境隔开,保持独立。五、00A基本步骤在用OOA具体地分析一个事物时,大致上遵循如下五个基本步骤:第一步,确定对象和类。这里所说的对象是对数据及其处理方式的抽象,它反映了系统保存和处理现实世界中 某些事物的信息的能力。类是多个对象的共同属性和方法集合的描述,它包括如何在一个类中建立一个新对象的描 述。第二步,确定结构(structure )。结构是指问题域的复杂性和连接关系。类成员结构反映了泛化-特化关系,整体-部分结构反映整体和局部之间的关系。第三步,确定主题(subject )。主题是指事物的总体概貌和总体分析模型。第四步,确定属性(attribute)。属性就

6、是数据元素,可用来描述对象或分类结构的实例,可在图中给出,并在对象的存储中指定。第五步,确定方法(method)。方法是在收到消息后必须进行的一些处理方法:方法要在图中定义,并在对象 的存储中指定。对于每个对象和结构来说,那些用来增加、修改、删除和选择一个方法本身都是隐含的(虽然它们 是要在对象的存储中定义的,但并不在图上给出),而有些则是显示的。五、面向对象设计原则 设计模式源自面向对象原则。6.1 )单一职责原则(SRP)探一个类,只有一个引起它变化的原因。6.2 )开放-封闭原则(OCP)探 软件实体应该是(对外)可扩展,(对内)不可修改。也就是说,对扩展是开放的,而对修改是封闭的。探对

7、扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。探对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改。6.3 )李氏替换原则(LSP)李氏替换原则(Liskov Substitution Principle LSP)是子类型必须能够完全替换其父类型(从逻辑上,而不是从语法上)。如:正方形为长方形的特例,如果我们用长方形extends正方形来新建长方形类,语义上就混乱了,容易产生问题。而如果用四方形作为共同的基类,则解决了问题。LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够

8、在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开 -闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步 骤的规范。6.4 )依赖倒置原则(DIP)也称作控制反转,缩写为 IoC(Inversion of Control),就是要依赖于抽象,不要依赖于具体。探面向接口编程探高层模块不应该依赖于低层模块,二者都应该依赖于抽象。探抽象不应该依赖于细节,细节应该依赖于抽象。探相对于结构化方法而言6.5 )接口隔离原则(ISP)探 使用多个专门的接口比使用单一的接口好;探一个类对另外一个类的依赖性应当是建立在最小的接

9、口上的;探一个接口代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿 的大接口,这是对角色和接口的污染;探 接口若要稳定,就应承担较少责任,本原则同时符合单一职责原则;探 可以合理利用接口的继承;探 同一个类可以同时实现多个接口,站在调用者的角度,不同的接口代表不同的关注点,不同的职责,甚至是 不同的角色。6.6、 合成 / 聚合复用原则(Composite/Aggregate Reuse Principle, CARP)经常又叫做合成复用原则,是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过 向这些对的委派达到复用已有功能的目的

10、。它的设计原则是:要尽量使用合成/聚合,尽量不要使用继承。6.7、最小知识原则(Principle of Least Knowl edge, PLK,也叫迪米特法则) 不要和陌生人说话。七、面向对象六视点7.1)(代码)复用(Reusibility)将重复的代码封装到类的方法中提供调用。探软件设计最大的敌人是重复。探重复的代码会导致解决方案蔓延。探复用:? 细粒度? 封装? 高内聚探相关模式:? Prototype 模式? Proxy模式如何提高软件的复用性?方法级? 重构之方法提取? 辅助方法? 利用静态工厂复用对象的创建逻辑?对象级? 遵循单一职责原则? 合理的封装? 辅助类?AOP(面向

11、方面编程)?模块级?根据依赖关系划分包?复用的粒度就是发布的粒度( The gran ule of reuse is the gran ule of release.)?一个包中的所有类应该是共同复用的7.2) (类可)扩展(Extensibility)探不修改原有代码增加新的功能,谓之扩展探实现扩展的方式:? 利用继承实现扩展? 利用组合实现扩展?利用继承和组合实现扩展? 利用抽象实现扩展探相关设计模式? Decorator 模式? Visitor 模式? Proxy模式7.3) (职责)分离(Separability)探软件设计需重视职责的分离探分离需与抽象结合,实现依赖的解耦探职责分离体

12、现了? 单一职责原则? 接口隔离原则探职责分离表现为? 如何定义职责? 如何分解职责? 如何抽象职责探分离的目标:? 分离变与不变? 分离接口与实现? 分离数据与行为探相关设计模式?FactoryMethod模式?Bridge模式?Iterator模式7.4 )(封装)变化(Change)探对变化点进行封装探封装变化的核心是抽象?封装创建的变化?封装结构的变化?封装行为的变化探解决变化应遵循:?开放-封闭原则? 依赖倒置原则探 封装变化的本质是隔离变化探隔离变化?通过分离?通过抽象?依赖注入探相关模式? Factory Method 模式? Abstract Factory 模式? Strat

13、egy 模式7.5)(设计)简约(Simplicity)探简约需遵循:? KISS原则?场景驱动设计?避免设计过度探如何实现简约:?封装有利于简约:职责的封装?继承有利于简约:职责的复用?多态有利于简约:职责的委托探简约不等于简陋,等于简单加优雅探简约需要重构和精益求精探如何考量简约??可复用性?可扩展性?可测试性探相关模式?Facade 模式?Sin gleto n 模式?Composite 模式?Template Method 模式?Strategy 模式7.6 ) 致(Coheranee)探一致体现了软件结构的和谐与平衡探一致体现为:?接口的一致一一对于实现可替换? 形式的一致窥一斑而知全豹?调用的一致一一客户可透明访问探相关模式:? Composite 模式? Adapter 模式

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号