【翻译+整理系列一】ADF概述

一、ADF概述

1.简介

Oracle Application Development Framework(Oracle ADF)是一个构建在Java EE标准和开源技术上的端到端的应用程序框架。你可以通过Oracle ADF在Web、wireless,desktop或者Webservice接口实现查询,创建,修改,验证等企业解决方案。由于ADF是声明式开发,所以简化和加速了开发流程。用户可以专注于逻辑应用的创建而不是编码的细节。

2.Oracle ADF架构

ADF实际上也是一个MVC框架,以下是Oracle架构的模型图
  • View层是用户能够看到并且能与之交互的页面
  • Controller层处理用户输入并且决定页面导航
  • Model层将数据关联到当前页面
  • Business Service处理数据访问和业务逻辑封装

2.1 ADF Business Component

在构建面向服务的的Java EE应用时,你将实现一个或多个业务服务的核心业务逻辑。这些后端服务,为客户提供一种方式来查询,插入更新和删除业务数据。ADF业务组件是预先建立的应用对象,以加速交付和维护高性能,丰富的功能,以数据库为中心的服务工作。他们为您提供了一个现成的使用实现了Java EE设计模式和最佳实践。
Oracle ADF提供以下主要组件,来构建以数据库为中心的业务服务:
  • Entity Object(实体对象)
       Entity Object 代表一个数据库表中的行,并简化其数据的DML操作。它可以封装业务逻辑,以确保您的业务规则顺利执行。
  • View Object(视图对象)
       View Object 代表一个SQL查询的结果集。你可以使用SQL进行关联,过滤,聚合等操作,最终将结果展现给用户。当最终用户在界面修改数据时,View Object能够关联Entity Object始终如一的保留用户修改状态,并且实现验证,最终将结果同步到数据库。
  • Application Module(应用程序模块)
       Application Module是UI客户端与应用数据工作的事务性组件,定义了可更新的数据模型和顶层方法。

2.2 ADF Model Layer

使用元数据接口抽象业务服务的实现技术来描述服务的操作和数据集,在创建应用程序模块时自动创建,包含应用程序模块的所有功能。使用Data Control创建数据绑定的用户界面。除了支持应用程序模块,还支持一下技术提供服务:
  • Enterprise JavaBeans(EJB)session beans和JPA entities
  • JavaBeans
  • Web services
  • XML
  • CVS files

2.3 ADF Controller

ADF控制器是处理Web应用页面流的关键之处,ADF控制器在JSF控制器的基础上增强了导航和状态管理。Jdeveloper允许用户使用声明式的方式创建任务流,在这里你可以控制页面流之间的活动或者调用其他任务流。
这些任务流可以重复使用,可以嵌套使用。用户可以查看不同页面的功能而无需跳转到其他URL所指向的页面(类似Ajax功能,无需编码,只需声明式定义页面流即可)。

2.4 ADF Faces Rich Client

ADF Faces rich client(ADF Faces的简称),一个建立在标准JSF组件上的组件集合,内置了AJax功能。结合Jdeveloper使用,可以通过拖动的方式来构建用户界面。ADF Faces提供了超过100种组件,包括分层数据表,树形菜单,页面对话框,排序表。还有大量的数据可视化组件,如动态图标,数据透视表,方便用户定制各种报表。每个组件还支持自定义皮肤,以满足不同用户的需求。




ADF Faces对国际化的支持也非常容易。
同时,ADF Faces也提供了丰富的JavaScript API供用户使用,尽管大多数情况下,我们并不需要自行编写Javascript代码。如果觉得组件不够使用,我们还可以自定义组件。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个使用Python语言编写的简单的ADF仪表程序,代码注释中有详细的解释: ```python import math import random import time # 定义NDB导航台的经纬度坐标 NDB_LATITUDE = 30.0000 NDB_LONGITUDE = 120.0000 # 定义航空器的经纬度坐标和航向角度 AIRCRAFT_LATITUDE = 30.0050 AIRCRAFT_LONGITUDE = 120.0050 AIRCRAFT_HEADING = 45 # 定义ADF仪表的指针角度和显示范围 ADF_POINTER_ANGLE = 0 ADF_DISPLAY_RANGE = 180 # 计算两点之间的距离和方位角 def calculate_distance_and_bearing(lat1, lon1, lat2, lon2): R = 6371 # 地球半径,单位km d_lat = math.radians(lat2 - lat1) d_lon = math.radians(lon2 - lon1) lat1 = math.radians(lat1) lat2 = math.radians(lat2) a = math.sin(d_lat / 2) ** 2 + math.cos(lat1) * math.cos(lat2) * math.sin(d_lon / 2) ** 2 c = 2 * math.atan2(math.sqrt(a), math.sqrt(1 - a)) distance = R * c # 两点之间的距离,单位km y = math.sin(d_lon) * math.cos(lat2) x = math.cos(lat1) * math.sin(lat2) - math.sin(lat1) * math.cos(lat2) * math.cos(d_lon) bearing = math.degrees(math.atan2(y, x)) # 方位角,单位度 return distance, bearing # 根据航向角度和方位角度计算ADF指针角度 def calculate_adf_pointer_angle(heading, bearing): angle = bearing - heading if angle < 0: angle += 360 return angle # 主程序 def main(): while True: # 随机模拟航向角度的变化 AIRCRAFT_HEADING += random.randint(-5, 5) if AIRCRAFT_HEADING < 0: AIRCRAFT_HEADING += 360 elif AIRCRAFT_HEADING >= 360: AIRCRAFT_HEADING -= 360 # 计算当前位置和NDB导航台的距离和方位角 distance, bearing = calculate_distance_and_bearing(AIRCRAFT_LATITUDE, AIRCRAFT_LONGITUDE, NDB_LATITUDE, NDB_LONGITUDE) # 根据距离和方位角计算ADF指针角度 ADF_POINTER_ANGLE = calculate_adf_pointer_angle(AIRCRAFT_HEADING, bearing) # 输出当前信息 print("Aircraft position: (%.4f, %.4f)" % (AIRCRAFT_LATITUDE, AIRCRAFT_LONGITUDE)) print("Distance to NDB: %.2f km" % distance) print("Bearing to NDB: %.2f degrees" % bearing) print("Aircraft heading: %.2f degrees" % AIRCRAFT_HEADING) print("ADF pointer angle: %.2f degrees" % ADF_POINTER_ANGLE) # 等待一段时间,模拟ADF仪表的刷新速度 time.sleep(1) if __name__ == '__main__': main() ``` 这个程序模拟了一个航空器飞行时的情况,根据航空器的位置和航向角度,计算出航空器到NDB导航台的距离和方位角,然后根据航向角度和方位角度计算ADF指针角度,并输出相关信息。程序还模拟了航向角度的随机变化,以及ADF仪表的刷新速度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值