编写对象接口 - 山东大学课程中心0.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 值类型的声明 作用 典型用法 声明形式 抽象 具体 动态确定参数传递 盒装值类型 定制值类型与可截断值类型 值类型——作用 在网络中传递对象状态信息,即为了实现按值传递对象 值类型——典型用法 按值调用传递参数:创建实参的副本 远程操作返回一个对象时创建返回的副本 实质:一个对象的
您可能关注的文档
- 红土形态在不同地形位置的分布 ──以上部桃园台地 .ppt
- 红色为添加蓝色为修改 - 就业信息.doc
- 纯硅中碘的比色测定 - 厦门大学化学化工学院.ppt
- 纳米复合材料和分子复合材料 - 科学—群组.ppt
- 组件封装材料 - Welcome to nginx!.ppt
- 组态王60A培训教程 - 工控博客-记录.收藏.分享- .ppt
- 经典员工职业素养提升课件 - 华侨大学MBA教育中心.ppt
- 经典复杂络概述.ppt
- 经方一百首 - 淘中医 - 淘中医之宝 - 中医古籍阅读 .doc
- 经济型酒店研究 ——动态视角下的结构演进.ppt
- 伟明环保-市场前景及投资研究报告-境内业务稳健运行,印尼市场贡献边际增量.pdf
- 桂东县法院系统招聘考试真题2025.pdf
- 贵州省黔南布依族2026年中考三模物理试题及答案.pdf
- 贵州省黔南州2026年中考语文二模试卷附答案.pdf
- 贵州省铜仁市2026年中考语文二模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套完整答案详解.docx
- 贵州省毕节市2026年中考语文一模试卷附答案.pdf
- 贵州省贵阳市南明区2026年中考语文一模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套参考答案详解.docx
- 贵州省贵阳市白云区2026年中考二模物理试题附答案.pdf
最近下载
- 2023大型娱乐场所综合能源服务项目规划设计典型案例.docx VIP
- 2023科技园区综合能源服务项目规划设计典型案例.pdf VIP
- 2023商业综合体综合能源服务项目规划设计典型案例1.pdf VIP
- 三槐堂王氏族谱辈份.docx VIP
- 半导体产业半导体功率器件市场研究报告.doc VIP
- (学习资料)综合能源服务项目规划设计典型案例.docx VIP
- 近代日本宫中势力的国体论与立宪中的君权定位——以岩仓具视为中心考察_张艳茹.pdf VIP
- 认识日本之一:从丰臣秀吉到吉田松阴.pdf VIP
- 安川变频器技术手册V1000 中文.pdf VIP
- 2023医院类综合能源服务项目典型设计案例.pdf VIP
原创力文档

文档评论(0)