Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin:为什么需要BusinessEntityBase类_Xamarin - Fatal编程技术网

Xamarin:为什么需要BusinessEntityBase类

Xamarin:为什么需要BusinessEntityBase类,xamarin,Xamarin,我想学习Xamarin,我看了一个名为“Tasky”的示例项目 但我不明白为什么会有BusinessEntityBase类。。。 一个任务也需要它的ID被PK和递增,那么为什么它不实现呢 BusinessEntityBase类而不是IBusinessEntity接口 public class Task : IBusinessEntity { public Task () { } [PrimaryKey, AutoIncrement] public int

我想学习Xamarin,我看了一个名为“Tasky”的示例项目 但我不明白为什么会有BusinessEntityBase类。。。 一个任务也需要它的ID被PK和递增,那么为什么它不实现呢 BusinessEntityBase类而不是IBusinessEntity接口

public class Task : IBusinessEntity
{
    public Task ()
    {
    }

    [PrimaryKey, AutoIncrement]
    public int ID { get; set; }
    public string Name { get; set; }
    public string Notes { get; set; }
    // new property
    public bool Done { get; set; }
}

  public abstract class BusinessEntityBase : IBusinessEntity 
{
    public BusinessEntityBase ()
    {
    }

    /// <summary>
    /// Gets or sets the Database ID.
    /// </summary>
    [PrimaryKey, AutoIncrement]
    public int ID { get; set; }
}

    public interface IBusinessEntity 
    {
    int ID { get; set; }
    }

IBusinessEntity接口就是一个接口,在本例中,它的属性ID将是每个业务实体的一部分。阅读C中接口的使用,更好地理解为什么要这样做

另一个例子是: 假设您有一个员工管理应用程序,其中包含三种不同类型的用户—经理、开发人员和测试人员。每一个都有一节课

它们很可能都包含一个ID字段、一个名字和一个姓氏

您不需要向每个类添加相同的属性,而是创建一个名为IEmployee的接口,该接口有三个字段-ID、FirstName和LastName,并获取三个类中的每一个来实现它

在功能上,在接口上实现属性并手动添加它们对类具有相同的效果。虽然有一个接口连接了这三个对象,但现在您有了一种更抽象的方式来访问数据。例如,要计算员工数量,您可以检查IEEmployee对象的数量,而不是将所有三个对象分开计算,然后再加起来

TL;医生这样做不是强制性的。在这个场景中,您可以简单地拥有一个具有ID字段的BusinessEntity类。这只是一个很好的实践,使您的应用程序在增长时易于维护