工程硕士信息系统第九章 面向对象的设计.ppt

工程硕士信息系统第九章 面向对象的设计.ppt

  1. 1、本文档共128页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
工程硕士信息系统第九章 面向对象的设计

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 谢谢! 江西财经大学信息管理学院 Thank you! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 96 对象持久化与数据库 读者: 读者编号,读者姓名,读者单位,当前限额 借书记录: ID,读者编号,馆藏流水号,借书日期,到期日期,归还日期 馆藏项: 馆藏流水号,当前状态 Reader Loan 借阅 1 * ResourceItem 0..1 1 记载 97 对象持久化与数据库 继承关系的映射 三种可选方式: 继承关系树的每个类对应一个表:使用不同的表来分别表示父类和子类。 继承关系树的每个具体类对应一个表:将所有父类的属性复制为子类表中不同的列,父类不建立对应的表。 继承关系树只对应一个表:使用一张表来描述父类和所有子类的属性,额外还需要增加一个列表示对象所属的子类型。 98 对象持久化与数据库 Book Disc ResourceTitle 1、三个表: 品种:ISBN,名称,作者,出版日期,价格… 书籍:ISBN,开本 光盘:ISBN,光盘类型,盘片数量 2、两个表: 书籍:ISBN,名称,作者…,开本 光盘:ISBN,名称,作者…,光盘类型,盘片数量 3、一个表 品种:ISBN,名称,作者…,品种类别,开本,光盘类型,盘片数量 99 对象持久化与数据库 持久化软件架构设计 在领域层实现,即直接在实体类中编写SQL语句访问数据库,或者为了减少数据库操作的代码数量,编写一个公用的数据访问类,各实体类将组装好的SQL语句传递给该类以实现数据库访问。 设计简单的数据映射层实现数据访问,即把SQL访问从业务逻辑中分离出来,放到独立的类中。当每个实体类映射为一张表时,可以为每个实体类建立一个数据访问类,一般包括数据查找方法以及更新、插入和删除方法。 设计功能独立具有数据映射器的持久层。业务逻辑层完全不用了解数据的存储,应用程序中的对象通过设置与表的映射关系后,可以在开发人员对底层数据库及其模型毫不知情的情况下实现数据的持久化。映射关系通过数据映射器来具体实施,它是分离内存对象和数据库的一个软件层,其职责是在内存对象和数据库之间传递数据并保持它们彼此独立。 100 对象持久化与数据库 三种设计方法的举例 参见用户权限的VB程序,实体类负责数据库的访问 参见微软PetShop程序,数据库访问通过编写数据访问层的类来实现。比如业务层的类Order,有Insert、getOrder方法分别完成保存和查询的功能,这些方法中使用了数据访问层的类来读写数据库 网上可查阅Hibernate示例程序,代码中不需要编写SQL语句 * 面向对象设计原则 设计原则 结构化方法:低耦合、高内聚、模块化 面向对象方法:封装、重用、SRP、OCP、DIP… 102 面向对象设计原则 为什么要讨论设计原则? 设计良好的系统:容易理解、可变更性好、易于重用 设计糟糕的系统如同腐化食物散发出臭味(smell),有以下症状: 僵化性(rigidity):系统很难改变,即使一个简单的改动也会导致大量有耦合关联的其他部分的连锁反应。 脆弱性(fragility):改变系统的某个部分会破坏许多无关的其他部分 固化性(immobility):很难将系统分解成可供其他系统重用的部件。 黏滞性(viscosity):当软件需要改动时,设计不容易保持稳定,逐渐脱离原形而走样。 不必要的复杂性(needless complexity):过分的或超前的设计 不必要的重复性(needless repetition):大量代码重复,修改一处时,需要对每个重复副本一一修改。 晦涩性(opacity):很难阅读理解,不能很好地表现出设计者的意图。 103 面向对象设计原则 设计原则 采用设计原则来帮助消除臭味: 单一职责原则(The Single Responsibility Principle,简称SRP) 开放-封闭原则(The Open-Close Principle,简称OCP) Liskov替换原则(The Liskov Substitution Principle,简称LSP) 依赖倒置原则(The Dependency Inversion Principle,简称

文档评论(0)

fangsheke66 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档