1、,图书管理系统-设计模式,2022年10月,2022年10月,2,主要内容(Contents),BEC模式,目前我们所得到的类图,3,4,BEC模式(BEC Pattern),软件设计的最终结果要完成以下模型的设计:静态结构设计类设计包设计接口设计动态结构设计(行为和交互建模)对象如何进行交互的,关注,设计原则(Design Principles),1、“开闭”原则:对扩展开放,对修改关闭2、里氏代换原则:一个软件实体如果使用的是一个基类的话,那么一定适用于其子类3、依赖倒转原则:要依赖于抽象,不要依赖于具体4、接口隔离原则:使用多个专门的接口比使用单一的总接口要好5、合成/聚合原则:要尽量使
2、用合成/聚合,尽量不要使用继承6、迪米特法则:一个对象应该对其它对象有尽可能少的了解,5,抽象,信息隐蔽,模块独立,高内聚,低耦合,6,还记得“春晓”吧?,设计1,设计2,设计3,设计4,设计5,同样的需求,可以采取不同的设计方式来完成。设计的好坏会影响系统的可重用性、可维护性和可扩展性。,设计原则(Design Principles),7,设计模式(Design Pattern),设计模式就是实现了这些原则,从而达到了代码复用、增加可维护性的目的。,提高代码复用提高可维护性,按照良好的设计原则进行设计,?,?,使用设计模式,8,BEC模式(BEC Pattern),先看一下图书管理系统的登录
3、,9,验证通过,验证未通过,10,一种设计(One Solution),将用户名和密码的验证,放在登录界面的“进入系统”按钮中进行。,11,存在的问题(Prolems),问题1:扩展性差。目前这个系统只有一个图书馆工作人员使用,因此用户名和密码都是admin,这样验证可行,但是如果以后维护期间,需要增加工作人员或者增加学生、教师等使用角色,系统的扩展性就受到了限制。问题2:重用性不好。并且不同的角色需要写入不同的验证过程,不能重用。问题3:界面人员还要考虑算法和逻辑。使界面变得不单一。,2011-10,12,用户验证处理类,登录界面中,对用户验证处理类的使用,13,BCE模式(BEC Patt
4、ern),BCE模式指(Boundary-Control-Entity Patterns)。我们可以借助BCE模式迅速绘制出整合领域概念(domain concept)和业务流程(business process)两方面的序列图。,14,BCE模式(BEC Pattern),边界、控制、实体类,简单来说,在BCE模式中,将对象分为三类:边界类(boundary class)、控制类(control class)和实体类(entity class。,15,BCE模式(BEC Pattern),实体类保存问题领域中的重要信息,封装数据结构和数据储存有关的变化。控制类用来控制用例执行期间的复杂运算或
5、者业务逻辑,通常针对一个用例,就会对应生成一个控制类。边界类边界类用来隔离系统内外,通常负责接收并响应系统内外的信息。所以,参与者对象只能跟边界对象互动,而不能直接发消息给控制对象或实体对象,16,边界类(boundary class),边界类位于系统与外界的交界处边界类可以是以下类型界面类 如窗体、报表、以及表示通讯协议的类设备接口类 如直接与外部设备交互的类系统接口类 如直接与外部系统交互的类等通过用例图可以确定需要的边界类,每个Actor/Use Case对至少要一个边界类,但并非每个Actor/Use Case对要唯一的边界类。,17,边界类例(Example),在这里,我们重点关注显
6、示的信息,而非UI界面,18,通过两个用例看:,如何识别:边界类控制类实体类,19,分析办理借书用例的业务流程,细化办理借书业务流程:图书管理员点击“图书借阅”启动该用例;输入借阅证编号。输入图书登录号。点击“借阅”显示当前借阅信息(书名,ISBN,借阅时间,应归还时间),办理借阅的步骤可细化为:登记借阅信息;修改图书状态修改书目在馆数量,21,识别其中的边界类、控制类和实体类,识别其中的边界类、控制类和实体类,22,办理借阅用例,边界类,控制类,实体类,根据分析及时序图,完善类的设计,借阅信息类:加上登记借阅信息、读取借阅图书信息方法图书信息类:加:图书状态属性,修改图书状态方法书目类:加馆藏册数、在馆数量两个属性,修改在馆数量方法借阅者类加入借阅者类型属性借阅约束类:加入读取借阅册数方法,23,完善后的类图,24,课后任务(Task After Class),各组对本组项目中的主要系统用例运用BCE模式,完善类图。要求:1、至少每人做一个用例2、主要用例完成后系统的最基本的功能能够实现。比如图书管理系统,至少要完成图书的增删查改、借阅者的增删查改,办理借书、办理还书,25,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1