天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

API設計新思維:用流暢接口構造內部DSL

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

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

  本文將介紹一種被稱為流暢接口(Fluent Interface)的內部DSL設計方法。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設計新思維:用流暢接口構造內部DSL,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 欧美00后rapper潮水 | 久久999视频 | 男人的天堂色偷偷 | 色偷偷爱偷偷要 | 征服丝袜旗袍人妻 | 99爱在线精品视频免费观看9 | 夜夜澡人人爽人人喊_欧美 夜夜骑夜夜欢 | 俄罗斯女肥臀大屁BBW | 久久久久久久久性潮 | 天天狠狠色综合图片区 | 国产精品-区区久久久狼 | 99RE8国产这里只有精品 | 老师那里好大又粗h男男 | 俄罗斯乌克兰战争原因 | 久久综合给会久久狠狠狠 | 高清无码中文字幕在线观看视频 | 欧美乱妇日本无乱码特黄大片 | 变形金刚7免费观看完整 | 天天操天天干天天爽 | 1024人成网站色www下载 | 九九99亚洲精品久久久久 | 国产高清视频免费在线观看 | 国产高潮久久精品AV无码 | 久久精品国产亚洲AV热无遮挡 | 日韩午夜影院 | 久久久无码AV精品亚洲A片软件 | 青青草原成人 | 在线观看精品视频看看播放 | 亚洲AV中文字幕无码久久 | 老师掀开短裙让我挺进动态 | 国产人人为我我为人人澡 | 久久99国产精品蜜臀AV | 久久精品天天中文字幕 | 亚洲欧洲日产国码中学 | 久久9精品区-无套内射无码 | 野花日本大全免费观看3中文版 | 18亚洲男同gay1069 | 久久婷婷色香五月综合激情 | 尿孔 调教 扩张 | 又黄又爽又无遮挡在线观看免费 | 精品精品国产yyy5857香蕉 |