【发布时间】:2014-05-28 13:23:59
【问题描述】:
我正在尝试为我们公司制作发票管理系统。由于设计原则,我有点困惑。固体
假设一个类负责处理发票:InvoiceProcessor
InvoiceProcessor ip=new InvoiceProcessor(DraftHTML);
ip.Customer=theCustomer;
ip.Order=theOrder;
ip.Prepare();
在此之后,哪种方法更好?为什么?
一)
ip.SaveToFile(fileName);
ip.SendToCustomer();
ip.DBConnection=myActiveConnection;
ip.LoadFromDB(invoiceID);
ip.SaveToDB();
B)
SaveToFile(fileName,ip.GetHTML());
SendEmail(ip.Customer,ip.GetHTML());
ip.InvoiceInfo=LoadFromDB(invoiceID);
SaveToDB(ip.InvoiceInfo);
【问题讨论】:
-
对我来说——InvoiceProcessor 域处理与处理发票相关的事情更有意义。因此,选项 B 最有意义。
-
我看到很多职责(准备/创建发票、加载、保存、发送电子邮件)而且只有一个类 - 这已经破坏了 SOLID。
标签: c# oop design-principles