用于在不同类型的对象上封装相同进程的模式

时间:2015-03-11 00:45:18

标签: c# asp.net .net

我有两个具有非常相似属性的独立对象(类)(但不完全相同)。然而,两者都有"折扣"我需要执行某种类型的操作并在该过程完成后返回该特定对象的属性。

Class1:
Name, Total, Discount, Prop1, Prop5 etc

Class2:
FirstName, TotalAmount, Discount, Prop5, Prop11 etc

我想将Class1或Class2注入我的服务,执行某种类型的折扣计算并返回更新的对象及其折扣属性更新以及总计(通知总计与总安装量)

我会使用一个通用界面,即" IDiscount"有一个属性Discount { get; set; }? Class1和Class2都继承了吗?

ServiceClass constructor:
MyService(IDiscount)

这样我可以使用泛型: class1 = MyService(Class1)或MyService(Class2)

这是正确的做法吗?我将如何处理更新总计(这两个在每个类中被称为不同)

1 个答案:

答案 0 :(得分:1)

如果Class1和Class2是类似的对象,只有少数不同的东西,我会考虑将它们的公共属性(包括Discount),字段和方法分组到它们都继承的父类中,并让我的方法接受父类型。如果Class1和Class2是不同的对象,我会考虑使用一个接口并让我的方法接受它。

请想一想:将来我将如何使用此父类或接口?我真的在设计正确的东西,还是只是解决一个临时问题?

最终,只有你可以进行这类通话。