我正在开发一个网站,它有两种不同的客户端支持可能性.在他们两个中,他都需要提交一份包含一些必要字段的小表格.
我使用一个非常基本的模型实现其中一个,其中包含必要的属性,如名称,电子邮件和其他几个,用户输入他/她的数据,如果所有字段都有效,他被重定向到一个祝贺他的屏幕成功提交表格.
第二个需要来自客户端的几乎与第一个相同的输入,除了一个未包括的字段,并且客户端必须填写一些其他字段以获得第二类支持.
我想知道为两个视图使用相同的模型是一个好主意,虽然它们都不会使用所有属性,因为创建具有一半相同属性的两个不同模型对我来说似乎是浪费.
为模型使用继承:
比方说,输入1需要属性A,B和C.输入2需要B,C和D.
创建两个类:
public abstract class MyThingyBase
{
public int B { get; set; }
public int C { get; set; }
}
public class Input1 : MyThingyBase
{
public int A { get; set; }
}
public class Input2 : MyThingyBase
{
public int D { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这样,两个类都具有所需的所有属性,而无需重复代码.你甚至可以共享处理代码B,并C通过将其放置在一些与工程MyThingyBase类.