- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章编写对象接口.ppt
第四章编写对象接口 编写对象接口 对象接口与对象实现 OMG IDL的语法与语义 使用值类型 使用接口库 设计对象接口的准则 4.1 对象接口与对象实现 接口与对象实现之间是多对多关系 接口与对象分离 客户程序仅仅依赖于接口,不涉及对象实现 客户程序可采用与实现完全不同风格的程序设计语言 对象接口成为对外公布对象行为的唯一途径 对象接口的定义应包括对象的类型名字,对象上可进行的操作,属性,相关的数据类型定义,常量定义,异常定义等信息 4.1.2 接口定义语言 对象实现对外提供信息和服务 信息和服务是对象实现与客户程序之间的一种合约,需严格遵循规定 接口定义语言是书写这种合约的标准语言 IDL是一种说明性语言,不是程序设计语言 IDL的特点 面向对象 用于定义分布式服务的规格说明 定义复杂的数据类型 独立于具体的程序设计语言和特定的硬件,网络和操作系统平台 4.2 语法与定义 词法规则 模块声明 类型的声明 常量 异常 接口 值类型 4.2.1 词法规则 类似ANSI C++词法规则和预处理特性 关键字是大小写敏感;标识符大小写无关 4.2.2 模块的声明 用于限制标识符的作用域 一般将逻辑上密切相关的接口,类型,常量,异常等存放在同一模块中 4.2.3 类型的声明 基本数据类型(9种) 复合数据类型 枚举 结构 UNION 序列和数组 typedef typedef wstring PersonName; typedef enum enum PoliticalStatus {PartyMember, LeagueMember, Other}; struct struct Person { PersonName name; // 姓名 boolean sex; // 性别 short age; // 年龄 PoliticalInfo politics; // 政治面貌 }; union 4.2.4 常量的声明 转换为该IDL接口生成的操作接口中的常量声明 const double PI=3.14 接口内 public final static double PI=(double)3.14; 接口外 public interface PI{ public final static double value = (double)3.14} 4.2.5 异常的声明 引入关键字exception专门定义异常 4.2.6 接口的声明 属性声明 参数传递 单向传递 上下文传递 继承机制 抽象接口 接口——属性 属性不应看作对象的状态数据,是一种特殊的操作(0元操作) 可读写属性被映射为java中重载的方法(getter(),setter()) IDL接口中的属性被映射为JAVA语言的方法而不是变量,因此IDL接口可直接映射到JAVA的接口而不是类 属性声明 接口——参数传递方向 in:客户到对象实现 out:对象实现到客户 inout:双向 in可直接映射到java方法的参数 out,inout无法直接映射,利用持有类解决 参数传递方向 interface Modes { long op1(in long inArg, out long outArg, inout long inoutArg); Modes op2(in Modes inArg, out Modes outArg, inout Modes inoutArg); }; ModesOperations.java ModesHolder.java 客户端的使用 接口——单向操作 没有返回值的操作可设计为oneway操作 对象实现不确认请求是否真的收到 不会阻塞客户程序的执行过程,也不允许引发任何异常或返回任何值 oneway void log(in string userName,in string description); 接口——上下文表达式 附带于操作中 指明客户端那些影响对象请求执行结果的,与发出调用请求的客户环境有关的因素 是由关键字context引导的一系列字符串常量列表 对象实现受到远程调用请求后,可根据客户程序的请求上下文确定如何提供服务 接口——抽象接口 用于操作的形参声明,从而可在运行时根据实参的类型动态决定参数传递方式是按值调用还是按引用调用 4.2.7 值类型的声明 作用 典型用法 声明形式 抽象 具体 动态确定参数传递 盒装值类型 定制值类型与可截断值类型 值类型——作用 在网络中传递对象状态信息,即为了实现按值传递对象 值类型——典型用法 按值调用传递参数:创建实参的副本 远程操作返回一个对象时创建返回的副本 实质:一个对象的
您可能关注的文档
最近下载
- 2024-2025学年高中信息技术华东师大版(2020)选修2教学设计合集.docx
- 木里县白碉至鸭嘴一带存在大型.PDF VIP
- YD-5079-2005 通信电源设备安装工程验收规范.pdf VIP
- 2024年甘肃甘南州专业化管理的村党组织书记招聘笔试参考题库附带答案详解.pdf VIP
- 餐饮服务食品安全操作规范.doc VIP
- JJG 610-2013A型巴氏硬度计.docx VIP
- 职业技能大赛的作品汇报PPT获奖模板.pptx VIP
- 2024年甘肃张掖市专业化管理的村党组织书记招聘笔试参考题库附带答案详解.pdf VIP
- 黑布林阅读初三17《足球先生》中文版.pptx VIP
- 人工气道湿化的护理进展1).pdf VIP
文档评论(0)