最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

3.4 業(yè)務(wù)建模的抽象能力

2023-06-15 13:17 作者:xlorne  | 我要投稿

建模與抽象是兩個(gè)概念

? ??

? ? ?我們?cè)谇懊娴牡谌碌谝还?jié)中介紹了需求的拆分和業(yè)務(wù)建模的過(guò)程,但是并沒(méi)有談到如何做模型抽象。

? ? ?建模是為了滿足基本的業(yè)務(wù)場(chǎng)景,抽象是為了實(shí)現(xiàn)更靈活的拓展能力。

? ? ?抽象是為了更靈活的應(yīng)對(duì)業(yè)務(wù),單純從業(yè)務(wù)建模來(lái)說(shuō)即便是不抽象也不影響業(yè)務(wù)建模。因此業(yè)務(wù)建模不是說(shuō)必須得抽象。

什么是抽象

我們先來(lái)理解一下什么叫做抽象,舉例來(lái)說(shuō):


? ? ? ? ?公司里有兩個(gè)部門,分別是研發(fā)部門和財(cái)務(wù)部門,研發(fā)部門經(jīng)常需要出差,然后需要找財(cái)務(wù)部門報(bào)銷費(fèi)用,財(cái)務(wù)部門就安排了小紅會(huì)計(jì)來(lái)負(fù)責(zé)對(duì)接研發(fā)部門的報(bào)銷事項(xiàng)。但是財(cái)務(wù)部門的小紅工作比較忙經(jīng)常顧不上來(lái),這樣研發(fā)部門還得每次對(duì)接報(bào)銷費(fèi)用的時(shí)候還需要等待小紅的時(shí)間,為了讓研發(fā)部門報(bào)銷流程更加流暢,財(cái)務(wù)部門安排了小麗經(jīng)理負(fù)責(zé),小麗經(jīng)理下有5個(gè)會(huì)計(jì)人員,這樣每次研發(fā)部門需要報(bào)銷的時(shí)候直接找小麗經(jīng)理,小麗經(jīng)理會(huì)根據(jù)會(huì)計(jì)人員的情況,每次安排一人與研發(fā)部門對(duì)接,這樣以后研發(fā)部門的報(bào)銷流程就不再出現(xiàn)問(wèn)題了。

? ?在這個(gè)例子中,小麗經(jīng)理就是一個(gè)“抽象”的存在,研發(fā)部門不需要知道具體的會(huì)計(jì)是誰(shuí),也不需要了解會(huì)計(jì)的工作細(xì)節(jié),他們只需要和小麗經(jīng)理交互,提交報(bào)銷請(qǐng)求。小麗經(jīng)理會(huì)根據(jù)自己的內(nèi)部流程(這些是研發(fā)部門不需要關(guān)心的),安排具體的會(huì)計(jì)人員來(lái)處理這個(gè)請(qǐng)求。通過(guò)這種方式,報(bào)銷流程得以簡(jiǎn)化,研發(fā)部門的工作效率也得到提升。 這就是抽象的核心概念:將復(fù)雜的細(xì)節(jié)隱藏起來(lái),只提供簡(jiǎn)單的接口,讓使用者不需要了解內(nèi)部的復(fù)雜性就能完成工作。在面向?qū)ο缶幊讨校橄笸ǔJ峭ㄟ^(guò)創(chuàng)建抽象類或接口來(lái)實(shí)現(xiàn)的。這些抽象類或接口定義了一組方法(就像小麗經(jīng)理提供的報(bào)銷服務(wù)),但并沒(méi)有提供具體的實(shí)現(xiàn)(就像小麗經(jīng)理并沒(méi)有自己去處理每一個(gè)報(bào)銷請(qǐng)求)。具體的實(shí)現(xiàn)是由繼承抽象類或?qū)崿F(xiàn)接口的具體類來(lái)完成的(就像小麗經(jīng)理的會(huì)計(jì)人員)。這樣,代碼的使用者只需要依賴抽象的接口,就可以讓具體的實(shí)現(xiàn)來(lái)處理復(fù)雜的工作。這使得代碼更易于理解和維護(hù),也更具有靈活性。

抽象的兩個(gè)關(guān)鍵點(diǎn):

? ?抽象必會(huì)采用多態(tài)?

? ?使用方依賴其抽象

為什么要抽象?

簡(jiǎn)化復(fù)雜性

? ? 結(jié)合上面的例子,研發(fā)部門不需要知道財(cái)務(wù)部門內(nèi)部如何處理報(bào)銷的所有細(xì)節(jié),他們只需要知道報(bào)銷請(qǐng)求應(yīng)該提交給小麗經(jīng)理。這個(gè)抽象(小麗經(jīng)理)隱藏了財(cái)務(wù)部門的內(nèi)部復(fù)雜性,使研發(fā)部門可以專注于他們自己的工作。

增強(qiáng)可重用性

? ? 結(jié)合上面的例子,小麗經(jīng)理為所有需要報(bào)銷的部門提供了一個(gè)統(tǒng)一的接口。這意味著不只是研發(fā)部門,其他需要報(bào)銷的部門也可以復(fù)用這個(gè)接口。通過(guò)這種方式,小麗經(jīng)理的角色(即這個(gè)抽象)增強(qiáng)了系統(tǒng)的可重用性。

提供擴(kuò)展性

? ?結(jié)合上面的例子,如果公司需要改變報(bào)銷的處理方式,或者添加新的處理步驟,他們只需要更改小麗經(jīng)理的操作流程,而不需要通知和修改其他部門的操作方式。因此,這個(gè)抽象提供了系統(tǒng)的擴(kuò)展性。

促進(jìn)了封裝

? ? ?結(jié)合上面的例子,小麗經(jīng)理封裝了財(cái)務(wù)部門處理報(bào)銷的具體細(xì)節(jié)。其他部門不需要了解這些細(xì)節(jié),也不能直接干預(yù)這些細(xì)節(jié)。這提高了系統(tǒng)的穩(wěn)定性和安全性,因?yàn)槊總€(gè)部門都只能通過(guò)小麗經(jīng)理來(lái)進(jìn)行報(bào)銷,不能直接操作財(cái)務(wù)部門的內(nèi)部流程。

該如何抽象?

先說(shuō)四個(gè)觀點(diǎn):

? ?抽象是為了更靈活的應(yīng)對(duì)業(yè)務(wù),單純從業(yè)務(wù)建模來(lái)說(shuō)即便是不抽象也不影響業(yè)務(wù)建模。因此業(yè)務(wù)建模不是說(shuō)必須得抽象。 ?

? ?抽象也不是越多越好,凡事都有一個(gè)度,過(guò)度的抽象會(huì)讓系統(tǒng)變得更復(fù)雜,因此應(yīng)該做到只滿足當(dāng)前的場(chǎng)景即可,不要過(guò)度抽象。?

?? 抽象與設(shè)計(jì)模式無(wú)關(guān),在做抽象設(shè)計(jì)的時(shí)候不要刻意的與設(shè)計(jì)模式向靠攏,并不是采用了設(shè)計(jì)模式才是抽象?

? ?抽象是一種設(shè)計(jì)能力,是需要根據(jù)自己的設(shè)計(jì)經(jīng)驗(yàn)不斷的鍛煉出來(lái)的能力,抽象也是一個(gè)仁者見仁智者見智的事情,同樣的場(chǎng)景不同的人設(shè)計(jì)出來(lái)的模型會(huì)存在差異,但是抽象建模是有評(píng)價(jià)依據(jù)的,評(píng)價(jià)依據(jù)就是SOLID原則,我們需要反思思考理解這些原則,然后再調(diào)整自己的模型,但是不要求一蹴而就,盡量要根據(jù)自己的經(jīng)驗(yàn)來(lái)不斷提升。

抽象的運(yùn)用方式:

? ?簡(jiǎn)單來(lái)說(shuō),只要你在模型中提煉出來(lái)了接口、抽象類,然后通過(guò)繼承、實(shí)現(xiàn)的方式在對(duì)象中使用了他們,就可以說(shuō)你已經(jīng)運(yùn)營(yíng)上了抽象了。?

? ?由于抽象的能力不同,所提來(lái)出來(lái)的抽象概念可能不是特別合適,但是隨著你對(duì)SOLID原則的理解,然后不斷的鍛煉自己的抽象建模能力,慢慢你會(huì)具備良好的抽象能力的,所以我們可以先做將其運(yùn)用上,然后再考慮不斷的優(yōu)化。另在再?gòu)?qiáng)調(diào)一點(diǎn),建模本身是可以不需要抽象的,因此在做抽象之前,先要確保業(yè)務(wù)建模是可以滿足需求的,不要在建模的過(guò)程中刻意的追求鍛煉抽象能力。


3.4 業(yè)務(wù)建模的抽象能力的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
芦山县| 祁门县| 通榆县| 盖州市| 阳新县| 土默特右旗| 包头市| 林甸县| 丰城市| 吉木乃县| 图木舒克市| 望城县| 贵德县| 五指山市| 安塞县| 汶上县| 水城县| 湘乡市| 宿松县| 磐石市| 吉隆县| 万荣县| 阜城县| 呼和浩特市| 玉溪市| 宜君县| 望谟县| 德惠市| 银川市| 会东县| 宕昌县| 紫阳县| 资讯 | 绥化市| 团风县| 灵璧县| 临江市| 乐亭县| 成安县| 宁远县| 永平县|