提示解决从表单到类传递数据的任务

时间:2012-04-27 07:50:03

标签: c#

我有一项任务,我需要一些提示和解释来解决和理解它。这是关于客户的注册。

与联系人有关系的联系人,联系人与地址,电子邮件和电话有关系。

用户在ContactForm中输入信息,然后应在Adress,Email和Phone类中传递和检查此信息。但我想这些信息必须通过Contact类。然后我在ContactForm中创建了一个Contact对象,并将数据发送给Contact的构造函数,但是我希望我在Adress,Phone和Email的构造函数中使用对象引用,这些构造函数在Contact的字段中声明。这个我不明白它是如何工作的?也许使用对象引用是为了避免向Contact的构造函数发送大量数据?

我也将使用属性来设置和获取信息,同样的事情,我希望使用对象的引用。

如果我理解了我的说明,那么Contact的构造函数应该如下所示:

Contact(string firstName, string lastname, Adress adr, Phone tel, Email mail)

在这里,当我需要使用像这样的构造函数时,我不明白应该如何传递表单中的数据?

2 个答案:

答案 0 :(得分:0)

在构造函数中使用对象引用的关键是它更具动态性 假设我做了一个像这样的构造函数:

public void main()
{
    var c = new Contact("europeroad",9999, "USA");
}

public Contact(string address, int zipcode, string country){
    this.Address = new Address(address,zipcode,country);
}

此课程可以使用,但如果添加新字段会发生什么? region,createdon,...
您必须调整2个构造函数和2个构造函数调用。
如果你像对象引用一样建议,你会得到以下结果:

public void main()
{
  var a = new Address();
  a.Street = "europeroad";
  a.Zipcode = 9999;
  a.Country = "USA";
  var c = new Contact(a);
}
public Contact(Address address){
    this.Address = address;
}

在此处添加新字段只会导致更改主方法(不需要更改签名)。

答案 1 :(得分:-1)

这取决于您的用例,您从UC生成的域模型和系统序列图。 老实说,我可以说这是非常常见的UC,并且有很多解决方案。基于Craig Larmans OO分析和设计书:

UC: 用户输入联系信息。 系统检查信息的有效性。 (我们可以针对任何错误详细说明此步骤,现在我想简要解释一下,所以我不会详细说明......) 系统向用户显示成功消息。

据他们说,系统有联系概念,联系人包含地址电子邮件和电话。域模型有四个不同的概念,即联系人,地址,电子邮件和电话。 根据UC和Grasp Design模式,您需要实现Controller Object以分离UI和Bussines Logic。

联系/某种结果指示ContactController(用户,地址信息,电话信息)

因为可以通过来自Controller的信息来表达联系,所以创建Contact对象更容易理解。 我认为,设计比它的数据量更重要。老实说,我可以说,如果你的对象有太多的数据,你就会遇到设计问题:)