解决有关将数据从窗体传递到类的任务的提示

本文关键字:任务 提示 窗体 数据 解决 | 更新日期: 2023-09-27 18:32:21

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

与联系人有关系

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

用户在联系表单中输入信息,然后应在地址,电子邮件和电话类中传递和检查此信息。但我想信息必须通过 Contact 类。因此,我在 ContactForm 中创建了一个 Contact 对象,并将数据发送到 Contact 的构造函数,但预计我在 Contact 字段中声明的地址、电话和电子邮件的构造函数中使用对象引用。这个我不明白它是如何工作的?也许使用对象引用是为了避免向 Contact 的构造函数发送大量数据?

我还将使用属性来设置和获取信息,同样的事情在这里,我应该使用对象的引用。

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

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

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

解决有关将数据从窗体传递到类的任务的提示

在构造函数中使用对象引用的要点是它更加动态。
假设我做了一个这样的构造函数:

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);
}

这当然会起作用,但是如果您添加新字段会发生什么? 区域, 创建于 , ...
您必须调整 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;
}

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

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

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

根据他们的说法,系统具有联系人概念,联系人包含地址电子邮件和电话。域模型有四个不同的概念,分别是联系人、地址、电子邮件和电话。根据UC和Grasp设计模式,您需要实现控制器对象以分离UI和Bussines逻辑。

联系人

/某种结果指示 联系人控制器(用户、地址信息、电话信息)

由于联系人可以通过来自控制器的信息来表示,因此创建联系人对象更容易理解。在我看来,设计比它消耗多少数据更重要。老实说,我可以说,如果你的对象消耗了这么多数据,你就有设计问题:)