如何在Fluent界面中使用条件?

时间:2018-12-20 07:57:12

标签: c# fluent

我有一种情况,我想简化创建和输出文档的过程。文档是从不同来源创建的,可以输出到打印机或通过电子邮件发送。

流利的Api可能看起来像这样:

var printJob = new PrintJob()
    .Initialize()
    .CreatePdf()
    .Print().When(output == PrintOutput.Printer)
    .Email().When(output == PrintOutput.Email);

实现如下:

public interface IPrintJob
{
    IPrintJob Initialize();
    IPrintJob CreatePdf();
    IPrintJob Print();
    IPrintJob Email();
    IPrintJob When();
}

public class PrintJob : IPrintJob
{
    public IPrintJob Initialize()
    { return this; }

    public IPrintJob CreatePdf()
    { return this; }

    public IPrintJob Print()
    { return this; }

    public IPrintJob Email()
    { return this; }

    public IPrintJob When()
    { return this; }
}

我将如何实现WhenIf条件?

此外,这些方法如何执行?是否应该将它们添加到List<Action>中,然后将Run方法添加到按顺序执行这些操作的类中?

0 个答案:

没有答案