共京部電大学 为何引入持久化类 入持久层的目的在于当数据存储机制或策略发生变化的 候,能减少维护工作。 ◆目節大部分系统都是采用数据库作为存储介质。但数据库 定会改变,包括: 数据库升级 从一种数据库移动到另一种数据库 数据模式变化,如增加字段、修改字段名称、改变字段类型等 ◆持久层将对数据库的操作类封装起来,提供专门数据管理 场能,向业务域对象提供持父化服务,众而使数据库 化对业务领域的影响的范围局部化 无论持久存储策略如何变化,业务/领域类都不会受影响, 从而增加了应用程序的可维护性、可扩展性和可移植性, ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心 11
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 11 为何引入持久化类 ◆ 引入持久层的目的在于当数据存储机制或策略发生变化的 时候,能减少维护工作。 ◆ 目前大部分系统都是采用数据库作为存储介质。但数据库 肯定会改变,包括: ➢ 数据库升级 ➢ 从一种数据库移动到另一种数据库 ➢ 数据模式变化,如增加字段、修改字段名称、改变字段类型等 ◆ 持久层将对数据库的操作类封装起来,提供专门数据管理 功能,向业务/领域对象提供持久化服务,从而使数据库变 化对业务领域的影响的范围局部化。 ◆ 无论持久存储策略如何变化,业务/领域类都不会受影响, 从而增加了应用程序的可维护性、可扩展性和可移植性
共京部電大学 10.25系统层 ◆系统层提供对操作系统和非面向对象资源 的访问。 ◆系统类将操作系统提供的系统调用封装起 来,生成系统访问类,例如Java语言中的文 件流类库。上层业务逻辑直接访问系统类 。而不直接访问系统调用 这样当程序需要在不同操作系统平台上进 行移植时,只需要修改少数系统类就可以 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心 12
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 12 10.2.5 系统层 ◆ 系统层提供对操作系统和非面向对象资源 的访问。 ◆ 系统类将操作系统提供的系统调用封装起 来,生成系统访问类,例如Java语言中的文 件流类库。上层业务逻辑直接访问系统类 。而不直接访问系统调用。 ◆ 这样当程序需要在不同操作系统平台上进 行移植时,只需要修改少数系统类就可以 了
共京部電大学 10.3面向对象设计原则 ◆10.31单一职责原则SRP( Single responsibility principle) ◆10.3.2开闭原则OCP( Open Closed Principle) 10.33里氏替换原则LSP( Liskov Substitution Principle) 10.34依赖倒置原则DIP( Dependency Inversion Principle) ◆10.3.5接口隔离原则ISP( Interface Segregation Principle) 10.36组合/聚合复用原则 Composite/Aggregation Reuse Principle, CARP ◆10.37迪米特法则( Law of demeter,LoD) ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心 13
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 13 10.3 面向对象设计原则 ◆ 10.3.1单一职责原则SRP (Single Responsibility Principle) ◆ 10.3.2开闭原则OCP(Open Closed Principle) ◆ 10.3.3里氏替换原则LSP(Liskov Substitution Principle) ◆ 10.3.4依赖倒置原则DIP (Dependency Inversion Principle) ◆ 10.3.5接口隔离原则ISP(Interface Segregation Principle) ◆ 10.3.6组合/聚合复用原则(Composite/Aggregation Reuse Principle, CARP) ◆ 10.3.7迪米特法则(Law of Demeter, LoD)
共京部電大学 1031单一职责原则SRP( Single Responsibility Principle) ◆就一个类而言,应该仅有一个引起它变化的原因 职责定义为“变化的原因”。如果你能够想到多 于一个的原因去改变一个类,那么这个类就具有 多于一个的职责。 ◆类承担了多个职责,等于这些职责都耦合在了 起。一个职责的变化可能会影响这个类完成其他 职责的能力。 ◆因此,在构造对象时,应该将对象的不同职责分 离至两个或多个类中,确保引起该类变化的原因 有一个,从而提高类的内聚度。 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心 14
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 14 10.3.1单一职责原则SRP (Single Responsibility Principle) ◆ 就一个类而言,应该仅有一个引起它变化的原因 。 ◆ 职责定义为“变化的原因”。如果你能够想到多 于一个的原因去改变一个类,那么这个类就具有 多于一个的职责。 ◆ 类承担了多个职责,等于这些职责都耦合在了一 起。一个职责的变化可能会影响这个类完成其他 职责的能力。 ◆ 因此,在构造对象时,应该将对象的不同职责分 离至两个或多个类中,确保引起该类变化的原因 只有一个,从而提高类的内聚度
共京部電大学 SRP举例 Computation Rectangle alGometry +drawl GraphicalAp Application +getAreao plication GUI Computation GraphicalAp alGometry plication Application Geometry Rectangle ectangle +drawL GUI +getareao ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心 15
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 15 SRP举例 Computation alGeometry Application Rectangle +draw() +getArea() GUI GraphicalAp plication Computation alGeometry Application GeometryR ectangle +getArea() GUI GraphicalAp plication Rectangle +draw()