解决有关将数据从窗体传递到类的任务的提示
本文关键字:任务 提示 窗体 数据 解决 | 更新日期: 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逻辑。
联系人/某种结果指示 联系人控制器(用户、地址信息、电话信息)
由于联系人可以通过来自控制器的信息来表示,因此创建联系人对象更容易理解。在我看来,设计比它消耗多少数据更重要。老实说,我可以说,如果你的对象消耗了这么多数据,你就有设计问题:)