自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

【木棉花】知識(shí)分享—Ability的介紹

原創(chuàng)
系統(tǒng) OpenHarmony
Page Ability,Service Ability和Data Ability三者都具有特定的功能,它們共同搭建起了鴻蒙應(yīng)用的工程架構(gòu)。

??想了解更多內(nèi)容,請?jiān)L問:??

??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??

??https://harmonyos.51cto.com??

前言

對于鴻蒙開發(fā)的初學(xué)者而言,了解HarmonyOS的一些基礎(chǔ)理論知識(shí)尤為重要。本期的知識(shí)分享主要帶大家了解鴻蒙開發(fā)的核心元素——Ability, 以及梳理PageAbility,Service Ability和Data Ability三者的功能與三者之間的聯(lián)系。話不多說,我們趕緊發(fā)車吧!

正文

Ability是鴻蒙開發(fā)中的核心元素?,F(xiàn)階段,HarmonyOS通過支持應(yīng)用以Ability為單位進(jìn)行部署,以實(shí)現(xiàn)應(yīng)用的相關(guān)業(yè)務(wù)邏輯。所以,作為鴻蒙應(yīng)用的開發(fā)者,我們需要深入理解Ability的概念,探索Ability在實(shí)踐開發(fā)中的應(yīng)用。

Ability的概念比較抽象,它的定義是:應(yīng)用所具備能力的抽象。通俗地講,Ability是一個(gè)應(yīng)用的重要組成部分(一個(gè)完整的應(yīng)用通常帶有很多Ability),它能為應(yīng)用實(shí)現(xiàn)特定的業(yè)務(wù)功能。Ability分為兩種大類型,分別是Feature Ability(FA)和Particle Ability(PA),每種類型都開發(fā)者提供了不同的模板,以實(shí)現(xiàn)不同的功能。

接下來我將著重介紹三種在鴻蒙開發(fā)中尤其重要的Ability——Page Ability,Service Ability和Data Ability。

前面我們提到了,Ability分為兩種大類型——Feature Ability(FA)和Particle Ability(PA)。其中,F(xiàn)A支持Page Ability(page模板是FA唯一支持的開發(fā)模板),而Page Ability用于提供與用戶交互的能力(即相關(guān)UI能力)。目前,HarmonyOS提供了Java UI與JS UI兩種UI框架用于實(shí)現(xiàn)應(yīng)用與用戶交互的能力,它們都有各自的優(yōu)點(diǎn)。其中,Java UI提供了細(xì)粒度的UI編程接口,這使得應(yīng)用開發(fā)的過程更具靈活性。JS UI(JavaScript UI)則提供了相對高層的UI描述,在實(shí)現(xiàn)同一個(gè)業(yè)務(wù)功能的過程中,相較于Java語言,JS語言下編譯的代碼是簡短很多的。所以,運(yùn)用JS UI可以使應(yīng)用開發(fā)的過程變得更加簡單和省力。PA支持Service Ability和Data Ability,其中,Service Ability中的Service模板用于提供后臺(tái)運(yùn)行任務(wù)的能力,Data Ability中的Data模板用于對外部提供統(tǒng)一的數(shù)據(jù)訪問抽象。

為了厘清Page Ability,Service Ability和Data Ability三者之間的關(guān)聯(lián),以及它們在鴻蒙應(yīng)用開發(fā)中的具體作用,我首先介紹MVC框架的概念。

MVC(Model View Controller)框架是軟件工程中的一個(gè)重要的開發(fā)理念,它作為一種軟件框架模式被當(dāng)今的軟件開發(fā)企業(yè)廣泛使用。在這種框架模式下的開發(fā)中,一個(gè)應(yīng)用程序?qū)⒈环纸獬扇齻€(gè)核心功能部件:Model,View和Controller。其中,View表示與用戶交互的UI界面(對應(yīng)頁面模塊),Model表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則(對應(yīng)服務(wù)模塊),Controller表示用于調(diào)用數(shù)據(jù)接口的控制器(對應(yīng)數(shù)據(jù)模塊)。這意味著頁面,服務(wù)和數(shù)據(jù)這三大模塊將在開發(fā)過程中各自獨(dú)立,互不影響。因此,企業(yè)的技術(shù)團(tuán)隊(duì)可以專心研究和實(shí)踐各自負(fù)責(zé)的模塊,而無需關(guān)心自己任務(wù)之外的模塊:負(fù)責(zé)頁面模塊的技術(shù)團(tuán)隊(duì)只需要設(shè)計(jì)用戶界面,負(fù)責(zé)服務(wù)模塊的技術(shù)團(tuán)隊(duì)只需要實(shí)現(xiàn)軟件后臺(tái)的業(yè)務(wù)邏輯,負(fù)責(zé)數(shù)據(jù)模塊的技術(shù)團(tuán)隊(duì)只需要管理數(shù)據(jù)接口和提供數(shù)據(jù)。當(dāng)三大模塊被設(shè)計(jì)好之后,再將這三個(gè)模塊合理拼接,即可得到一個(gè)完整的應(yīng)用程序。顯然,利用MVC框架進(jìn)行應(yīng)用的實(shí)踐開發(fā),能大大提升一項(xiàng)軟件工程的開發(fā)效率。

事實(shí)上,Page Ability,Service Ability和Data Ability之間的關(guān)系也類似于MVC框架中三個(gè)核心部件的關(guān)系。Page Ability的功能是提供與用戶交互的能力,它所作用的對象是UI頁面,所以,Page Abillity主要負(fù)責(zé)頁面模塊,設(shè)計(jì)可視化元素是Page Ability的重頭戲;Service Ability的功能是提供后臺(tái)運(yùn)行任務(wù)的能力,它代表著一個(gè)應(yīng)用程序最核心的服務(wù)功能,所以,Service Ability主要負(fù)責(zé)服務(wù)模塊;Data Ability的功能是對外部提供統(tǒng)一的數(shù)據(jù)訪問抽象,它能為Page Ability和Service Ability調(diào)用數(shù)據(jù)訪問接口以提供相應(yīng)數(shù)據(jù),所以,Data Ability主要負(fù)責(zé)數(shù)據(jù)模塊。由此可見,鴻蒙應(yīng)用的內(nèi)部設(shè)計(jì)也是符合MVC理念的。值得一提的是,主要負(fù)責(zé)某個(gè)模塊的Ability并不是不能參與到其他模塊(比如,Page Ability也可以參與服務(wù)模塊和數(shù)據(jù)模塊),但Page Ability,Service Ability和Data Ability它們各自負(fù)責(zé)的對應(yīng)模塊通常是符合當(dāng)今的主流方向的(即MVC框架模式)。

通常情況下,一個(gè)UI頁面的布局和可視化元素由Page Ability實(shí)現(xiàn)。當(dāng)頁面需要調(diào)用相關(guān)服務(wù)功能時(shí),Page Ability會(huì)向Service Ability發(fā)出服務(wù)請求,于是應(yīng)用的后臺(tái)便會(huì)給出相應(yīng)的響應(yīng)。當(dāng)頁面或者Service Ability需要相關(guān)數(shù)據(jù)時(shí),它們便向Data Ability發(fā)出數(shù)據(jù)請求,Data Ability則給出數(shù)據(jù)結(jié)果響應(yīng),為它們提供數(shù)據(jù)訪問接口。

總而言之,Page Ability,Service Ability和Data Ability三者都具有特定的功能,它們共同搭建起了鴻蒙應(yīng)用的工程架構(gòu)。

結(jié)語

小藍(lán)本期的知識(shí)分享就到此結(jié)束了qwq。

??想了解更多內(nèi)容,請?jiān)L問:??

??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??

??https://harmonyos.51cto.com??

責(zé)任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2021-12-01 15:40:23

鴻蒙HarmonyOS應(yīng)用

2021-12-01 15:38:33

鴻蒙HarmonyOS應(yīng)用

2021-11-02 14:55:42

鴻蒙HarmonyOS應(yīng)用

2021-09-17 14:47:33

鴻蒙HarmonyOS應(yīng)用

2013-07-08 15:41:07

Ubuntu

2011-11-04 17:26:12

2009-09-15 18:41:08

Python學(xué)習(xí)資料

2013-08-27 14:40:03

系統(tǒng)監(jiān)控

2022-02-17 21:05:26

AbilityJS FAJava PA

2010-04-30 14:55:09

Unix系統(tǒng)

2010-04-30 01:00:08

Unix shell

2011-04-13 14:19:52

Asp.Net.Net

2009-06-12 09:07:01

EJB入門

2009-09-22 10:57:42

Hibernate專業(yè)

2015-07-29 10:36:05

hadoop數(shù)據(jù)挖掘

2021-02-06 23:03:58

SQLServer數(shù)據(jù)庫變量

2010-05-11 19:08:36

Unix系統(tǒng)

2010-04-22 12:42:24

Aix操作系統(tǒng)

2009-04-02 13:45:36

網(wǎng)關(guān)網(wǎng)絡(luò)

2022-03-30 08:37:32

Python函數(shù)編程自定義函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)