我有一种情况,我想简化创建和输出文档的过程。文档是从不同来源创建的,可以输出到打印机或通过电子邮件发送。
流利的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; }
}
我将如何实现When
或If
条件?
此外,这些方法如何执行?是否应该将它们添加到List<Action>
中,然后将Run
方法添加到按顺序执行这些操作的类中?