这不是技术障碍或挑战,我想说这是一般性的讨论!如果这是一个不合适的论坛,请告诉我,我将删除它..
我有一个场景,从webservice获取10 xml,每个XML几乎没有常见属性和该XML的特定属性。
类结构看起来类似于下面的
Public abstract class employee
{
Public int Id {get; set;}
Public int Name {get; set;}
}
Public class PermanentEmployee: Employee
{
// PermanentEmployee specific props
}
Public class ContractEmployee
{
//Contractor specific properties
}
鉴于上述情况,员工类应该是抽象的还是应该是接口。哪个更好。
我将只有属性,没有方法。
我的观点:我会选择抽象类,因为我可以重用属性,因为没有方法,所以接口没有意义..
答案 0 :(得分:1)
我想在多个“子类”中“重用”属性,我总是使用抽象类。
如果您只想定义方法签名而不是它的“逻辑主体”,那么请使用interface。
总之,您与我们分享的源代码,这将是我的方式。
答案 1 :(得分:0)
我将定义一个接口IEmployee以及抽象类。这使得接口的灵活性可以一般地传递,但是抽象类对于那些你不得不重复代码(DRY等)的情况很有用。
public interface IEmployee
{
int Id { get; set;}
int Name { get; set;}
}
public abstract class Employee : IEmployee
{
public int Id { get; set;}
public int Name { get; set;}
}
public class PermanentEmployee: Employee
{
// PermanentEmployee specific props
}
public class ContractEmployee : Employee
{
//Contractor specific properties
}