第七章面向对象设计面向对象设计简介(续)OOD的常见活动确定系统的常见体系结构通过静态建模与动态建模完成系统问题域的设计通过持久化设计完成系统的数据管理的设计以界面设计为核心完成人机交互的设计合理设计系统中的并发与任务调度,完成任务管理设计
第七章 面向对象设计 面向对象设计简介(续) ◼ OOD的常见活动 ◼ 确定系统的常见体系结构 ◼ 通过静态建模与动态建模完成系统问题域的 设计 ◼ 通过持久化设计完成系统的数据管理的设计 ◼ 以界面设计为核心完成人机交互的设计 ◼ 合理设计系统中的并发与任务调度,完成任 务管理设计
第七章面向对象设计面向对象设计基本原则什么是好的软件设计?基本原则■开放一闭合原则:软件实体都应该是对扩展开放,对修改闭合依赖倒置原则:高层次的模块不应该依赖于低层次的模块,两者都应该依赖于抽象;抽象不应该依赖于细节细节应该依赖于抽象
第七章 面向对象设计 面向对象设计基本原则 ◼ 什么是好的软件设计? ◼ 基本原则 ◼ 开放-闭合原则:软件实体都应该是对扩展 开放,对修改闭合 ◼ 依赖倒置原则 :高层次的模块不应该依赖 于低层次的模块,两者都应该依赖于抽象; 抽象不应该依赖于细节,细节应该依赖于抽 象
应用层应用程序+网络编程接口传输层+vTCP或UDP网际层7IP网络访问层PPP协议802.11无线协议以太网协议
第七章面向对象设计面向对象设计基本原则(续)十按口隔离原则:不应强制要求客户依赖于他们不用的接口应当针对不同的客户编写不同类型的接口单一职责原则:如果有两个原因有可能引起一个类的改变,那么这个类就应该被拆分成两个类Liskov替换原则:子类必须能够完全替代它的父类:如添加子类,应注意继承时不要改变父类的方法目的在于扩展时避免造成对系统中其他部分的修改
第七章 面向对象设计 面向对象设计基本原则(续) ◼ 接口隔离原则:不应强制要求客户依赖于他们 不用的接口 ,应当针对不同的客户编写不同类 型的接口 ◼ 单一职责原则:如果有两个原因有可能引起一 个类的改变,那么这个类就应该被拆分成两个 类 ◼ Liskov替换原则 :子类必须能够完全替代它 的父类 ,如添加子类,应注意继承时不要改变 父类的方法目的在于扩展时避免造成对系统中 其他部分的修改
第七章 面向对象设计GRASPGRASP一种设计模式“职责分配”核心思想即如何通过职责分配来设计类,确定类应有那些方法包括9个设计模式信息专家(InformationExpert)创建者(Creator)(Controller)控制器(LowCoupling)低耦合(HighCohesion)高内聚(Polimorphism)多态性(PureFabrication)纯虚构(Indirection)间接性变化预防(ProtectedVariations)
第七章 面向对象设计 GRASP ◼ GRASP 一种设计模式 ◼ 核心思想 “职责分配”,即如何通过职责分 配来设计类,确定类应有那些方法 ◼ 包括9个设计模式 ◼ 信息专家(Information Expert) ◼ 创建者(Creator) ◼ 控制器(Controller) ◼ 低耦合(Low Coupling) ◼ 高内聚(High Cohesion) ◼ 多态性(Polimorphism) ◼ 纯虚构(Pure Fabrication) ◼ 间接性(Indirection) ◼ 变化预防(Protected Variations)