一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

API設(shè)計(jì)新思維:用流暢接口構(gòu)造內(nèi)部DSL

  程序設(shè)計(jì)語言的抽象機(jī)制包含了兩個(gè)最基本的方面:一是語言關(guān)注的基本元素/語義;另一個(gè)是從基本元素/語義到復(fù)合元素/語義的構(gòu)造規(guī)則。在C、C++、Java、C#、Python等通用語言中,語言的基本元素/語義往往離問題域較遠(yuǎn),通過API庫的形式進(jìn)行層層抽象是降低問題難度最常用的方法。比如,在C語言中最常見的方式是提供函數(shù)庫來封裝復(fù)雜邏輯,方便外部調(diào)用。

  不過普通的API設(shè)計(jì)方法存在一種天然的陷阱,那就是不管怎樣封裝,大過程雖然比小過程抽象層次更高,但本質(zhì)上還是過程,受到過程語義的制約。也就是說,通過基本元素/語義構(gòu)造更高級抽象元素/語義的時(shí)候,語言的構(gòu)造規(guī)則很大程度上限制了抽象的維度,我們很難跳出這個(gè)維度去,甚至可能根本意識不到這個(gè)限制。而SQL、HTML、CSS、make等DSL(領(lǐng)域特定語言)的抽象維度是為特定領(lǐng)域量身定做的,從這些抽象角度看問題往往最為簡單,所以DSL在解決其特定領(lǐng)域的問題時(shí)比通用程序設(shè)計(jì)語言更加方便。通常,SQL等非通用語言被稱為外部DSL(External DSL);在通用語言中,我們其實(shí)也可以在一定程度上突破語言構(gòu)造規(guī)則的抽象維度限制,定義內(nèi)部DSL(Internal DSL)。

  本文將介紹一種被稱為流暢接口(Fluent Interface)的內(nèi)部DSL設(shè)計(jì)方法。Wikipedia上Fluent Interface的定義是:

A fluent interface (as first coined by Eric Evans and Martin Fowler) is an implementation of an object oriented API that aims to provide for more readable code. A fluent interface is normally implemented by using method chaining to relay the instruction context of a subsequent call (but a fluent interface entails more than just method chaining).

it知識庫API設(shè)計(jì)新思維:用流暢接口構(gòu)造內(nèi)部DSL,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 成人爽a毛片在线视频网站 成人丝袜激情一区二区 | 精品国产一区二区三区不卡 | 亚洲图片一区二区三区 | 日本道精品一区二区三区 | 91免费国产在线观看 | 亚洲综合91社区精品福利 | 国内精品久久久久久久999下 | 亚洲综合网站 | 亚洲夜色 | 在线播放人成午夜免费视频 | 欧美在线视频在线观看 | 五月天婷婷激情 | 19日本人xxxxwww| 四虎影视久久久 | 色婷婷亚洲十月十月色天 | 国产精品高清2021在线 | 色哟哟色院91精品网站 | 思思久久这里只精品99re66 | 国产小视频在线免费 | 91福利视频一区 | 亚洲天堂一区二区在线观看 | 欧美日韩另类在线观看视频 | 国产一区二区三区福利 | 国产福利视精品永久免费 | 永久免费品色堂 | 国产精品大白天新婚身材 | 国产亚洲精品一品区99热 | 亚洲妇人成熟性成熟网站 | 色婷婷色丁香 | 四虎在线永久免费观看 | 国产美女无遮挡免费视频 | 日本欧美强乱视频在线 | 欧美黄色片在线观看 | 国产亚洲综合成人91精品 | 婷婷四色| 精品在线一区 | 午夜一级在线 | 天天澡天天碰天天狠伊人五月 | 在线播放黄 | 一区二区三区高清在线观看 | 亚洲伦理中文字幕一区 |