日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

编译原理抽象语法树_平衡抽象原理

發(fā)布時(shí)間:2023/12/3 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编译原理抽象语法树_平衡抽象原理 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

編譯原理抽象語(yǔ)法樹(shù)

使代碼復(fù)雜易讀和理解的一件事是,方法內(nèi)部的指令處于不同的抽象級(jí)別。

假設(shè)我們的應(yīng)用程序僅允許登錄用戶(hù)查看其朋友的旅行。 如果用戶(hù)不是朋友,則不會(huì)顯示任何行程。

一個(gè)例子:

public List<Trip> tripsByFriend(User user, User loggedInUser) {return (user.friends().contains(loggedInUser)) ? userRepository.findTripsBy(user.id()): Collections.emptyList(); }

在上面的代碼中,方法主體中的所有指令處于不同的抽象級(jí)別。 我們有驗(yàn)證友誼的指令,通過(guò)協(xié)作者獲取朋友的旅行列表的指令以及返回空且不變的列表的低級(jí)Java API。 最重要的是,我們擁有商業(yè)行為本身。

現(xiàn)在讓我們看一下相同方法的重構(gòu)版本:

public List<Trip> tripsByFriend(User user, User loggedInUser) {return (user.isFriendsWith(loggedInUser)) ? tripsBy(user): noTrips(); }private List<Trip> tripsBy(User user) {userRepository.findTripsBy(friend.id()); }private List<Trip> noTrips() {return Collections.emptyList(); }

在這個(gè)新版本中,我們將低級(jí)抽象提取到私有方法中,并且還將某些行為移至User類(lèi)。 進(jìn)行此更改后,所有指令都處于相同的抽象級(jí)別,從而使業(yè)務(wù)規(guī)則清晰明了。 現(xiàn)在,公共方法可以告訴我們一個(gè)故事,而無(wú)需擔(dān)心技術(shù)實(shí)施細(xì)節(jié)。 現(xiàn)在,代碼讀取時(shí)沒(méi)有任何顛簸:“如果用戶(hù)是已登錄用戶(hù)的朋友,則按用戶(hù)返回行程,否則不返回行程。”

平衡抽象原理(BAP)

平衡抽象原理定義了按較高級(jí)別構(gòu)造分組的所有代碼構(gòu)造應(yīng)處于同一抽象級(jí)別。 這意味著:

  • 方法中的所有指令應(yīng)處于相同的抽象級(jí)別
  • 類(lèi)內(nèi)的所有公共方法都應(yīng)處于相同的抽象級(jí)別
  • 包/命名空間中的所有類(lèi)
  • 父包/命名空間中的所有同級(jí)包/命名空間
  • 所有模塊,子系統(tǒng)等

該原理也適用于測(cè)試-單個(gè)單元(方法,類(lèi),模塊,系統(tǒng))的所有測(cè)試應(yīng)處于相同的抽象級(jí)別。

BAP和SRP

符合“單一職責(zé)原則”的代碼也更有可能也符合“平衡抽象原則”。 但是,情況并非總是如此,相反的情況并非總是如此。

結(jié)論

為了獲得精心設(shè)計(jì)的代碼,我們需要考慮許多設(shè)計(jì)原則,我認(rèn)為,平衡抽象原則(BAP)是SOLID原則和整個(gè)軟件設(shè)計(jì)中缺少的部分。

翻譯自: https://www.javacodegeeks.com/2015/03/balanced-abstraction-principle.html

編譯原理抽象語(yǔ)法樹(shù)

總結(jié)

以上是生活随笔為你收集整理的编译原理抽象语法树_平衡抽象原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。