使用Flunt Api可以使代码的可读性更好,更接近于领域专家。Flunt Api的另一个好处是易于扩展,可以通过扩展为核心业务类增加功能。这里举一个简单的例子进行说明,比如有下面的类:
using System.Collections.Generic;
namespace ZL.Stock
{
public class StockAnalyzer
{
public List<StockFirstTrade> StockFirstTrades { get; private set; }
public StockAnalyzer(List<StockFirstTrade> stockFirstTrades)
{
StockFirstTrades = stockFirstTrades;
}
}
}
我们为这个类增加一些方法,可以定义一个类,声明为static:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ZL.Stock
{
public static class StockAnalyzerExt
{
public static StockFirstTrade Detail(this StockAnalyzer analyzer, string stockcode)
{
return analyzer.StockFirstTrades.FirstOrDefault(o => o.TSCode == stockcode);
}
}
}
这个类中声明一个静态方法,这个方法的第一个参数带有this关键字,那么这个方法就会扩展到this参数修饰的类上。可以这样调用这个扩展方法:
var lst = JsonConvert.DeserializeObject<List<StockFirstTrade>>(json);
var analyzer = new StockAnalyzer(lst);
var detail=analyzer.Detail("688001.SH");
网友评论