您的位置:首页 > 大数据 > 人工智能

DSL(Domain Specific language)

2014-09-22 22:24 316 查看
DSL(Domain Specific language)

在真正了解领域模型(领域内的概念类或现实世界中对象的可视化表示的模型)前对DSL还不太了解。

最近正好在支持一个项目做领域建模,正好写点我对DSL的理解。

DSL如果按照机器翻译多半叫做:领域定义语言....

我理解DSL就是一种描述现实问题的语言,用这种语言去实现现实业务和代码逻辑的桥梁。

我理解的DSL的位置在业务模型和软件模型之间。

实际业务---领域建模(DSL)---软件模型(UML)----程序代码(C# , VB.NET , Java ...)

下面用一个实际例子来描述DSL的作用

(1) 业务场景:

如果某销售的销售业绩超过1800K,那么该员工就可以获得晋升。

(2) DSL来定义这样一个业务:

foreach [Sales]
if (total [Amount] of [The Sale] > 1800K)
[The Sale] do a [Promotion] .
end if
end foreach


(3) 对象模型:

Sale
|--Name(String)
|--Amount(Int)
HRInterface
|--IDoPromotion(Sale theSale);
|--List<Sale> GetAllSales();


(4) 程序代码:

.....函数部分代码略

.......................
List<Sale> sales = GetAllSales();
foreach(Sale sale in  sales){
if(sale.amount > 1800){
DoPromotion();
}
}


所以我理解DSL本身不是一个新的语言,也没有具体规则。

仅仅是为了方便我们理解业务模型的辅助工具而已。

转自:http://8376eric.blog.163.com/blog/static/9301693200810239166461/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: