您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 第九章对象设计-说明接口
导言对象之间是通过接口进行交互的接口接受一些参数,对其中每一步的操作有一组假设条件,并产生一个结果如果假设条件发生了变化,结果可能改变。接口规格说明概述标识遗漏的属性和方法求精对象设计模型标识可见性和签名标识哪些属性和方法对其他子系统是可见的说明契约对方法中每一步操作进行约束接口规格说明概念类实现者负责实现类内部数据结构和方法类扩展者对现有类进行扩展(子类的开发)类用户使用其他类提供的接口接口规格说明概念类型属性的数据类型签名属性定义(属性名,类型)maxNum:int方法定义(函数名,参数,返回值)getNum(Void):int可见性属性,方法的可见性,私有、保护、公有-,#,+接口规格说明概念契约:不变式,前置条件,后置条件不变式(invariant,inv)对于该类的每一个实例都为真的谓词ClassA.getStudentNum()0前置条件(precondition,pre)在调用一个方法前必须为真的谓词ClassA.getStudentNum()ClassA.MaxStudentNum()ClassA.addStudent(p)后置条件(postcondition,post)在调用一个方法后必须为真的谓词ClassA.addStudent(p)ClassA.isStudentAccept(p);接口规格说明概念对象约束语言-OCL(ObjectConstraintlanguage)使用UML和图形描述OCL表达式接口规格说明概念使用文字描述OCL表达式ContextTournamentinv:self.getMaxNumPlayers()0ContextTournament::acceptPlayer(p:Player)pre:!isPlayerAccepted(p)getNumPlayers()getMaxNumPlayers()ContextTournament::acceptPlayer(p:Player)post:isPlayerAccepted(p)ContextTournament::removePlayer(p:Player)pre:……接口规格说明概念在java中可以使用javadoc文本标签编辑OCL描述/***thisfunction……………*@pre!isPlayerAccepted(p)*@pregetNumPlayers()getMaxNumPlayers()*@postisPlayerAccepted(p)*/publicvoidacceptPlayer(Playerp){……}接口规格说明活动标识遗漏的方法和属性说明类型签名及可见性说明前置条件和后置条件说明不变式继承契约标识遗漏的方法和属性在需求分析中,侧重应用域的对象,在系统设计中,关注子系统服务在对象设计中,标识遗漏的属性和方法QQ登陆模块(需求分析)实体对象:用户边界对象:登陆表单控制对象:登陆控制防止同一个用户同时登陆在登陆控制中添加isPlayerOverLogin方法并修改顺序图说明类型,签名和可见性定义方法接口,参数,返回值renderStringstr,font,fontstyle,area,mode…………..标识方法可见性问题对于播放器内核来说,你觉得下列哪些方法是公有的,哪些是私有的StratPlayer()FullScreen()ReadFileStream()DecodeBlock()RenderToScreen()说明前置条件和后置条件说明一个类方法的依赖条件QQ登陆ContextLoginControl::playerLogin(p:Player)pre:!isPlayerLogined(p)getNumPlayers()getMaxNumPlayers()ContextLoginControl::playerLogin(p:Player)post:isPlayerLogined(p)说明不变式ContextLoginControlinv:self.getMaxNumPlayers()0对象设计编档作为需求分析的一个补充优点:需求分析与对象设计一致缺点:需求分析文档中加入用户/客户无关数据嵌入到源代码中,通过在源码中按照某种格式标记注释接口,然后使用工具提取出相关信息(如Javadoc)优点:自动生成,更新容易Javadoc的使用对象设计文档模板导言接口文档规范术语表参考接口设计规范类的命名规则(单一名词)方法和属性的命名规则(动词短语)异常的返回方式(返回异常,而不是错误返回值)对象设计文档模板包包的综述,包的依赖关系以及期望的用法类类的综述,属性,方法,可见性,以及应该抛出的异常接口设计规范函数命名法则isCurrentFile变量命名法则g_全局变量(g_pElement)m_成员变量(m_pElement)变量类型iintiStudentNumppointpPointAuuintuSumsstructuresButton……责任分配体系结构师定义接口规范,保证对象设计与需求分析一致系统联络员负责子系统接口编档,及时更新对象设计者实现类接口规格说明,求精及细化配置管理人员跟踪源代码及对象设计文档版本技术记录员整理对象设计文档的最终版本
本文标题:第九章对象设计-说明接口
链接地址:https://www.777doc.com/doc-2123904 .html