C# 为不同的场景设计usercontrol

C# 为不同的场景设计usercontrol,c#,C#,现在我正在开发一个注册系统,基本上有三种不同的场景来获取用户的个人信息(姓名、地址等) 1.预填充表1中的数据 2.从表2中预填充数据 3.对于新用户为空 我正在尝试为这三种情况创建一个个人信息用户控件,在这种情况下,我想我需要一个开关来确定要转到哪个表。我的问题是这样做值得吗?因为我不确定客户将来是否会添加更多场景。谢谢是的,一般来说,遵循干燥(不要重复)原则是个好主意。如果您要在两个(或更多)地方展示相同的用户界面,您应该尝试一次编码/设计并重用它 即使只有一个数据源,您也应该尝试将表示与模

现在我正在开发一个注册系统,基本上有三种不同的场景来获取用户的个人信息(姓名、地址等) 1.预填充表1中的数据 2.从表2中预填充数据 3.对于新用户为空


我正在尝试为这三种情况创建一个个人信息用户控件,在这种情况下,我想我需要一个开关来确定要转到哪个表。我的问题是这样做值得吗?因为我不确定客户将来是否会添加更多场景。谢谢

是的,一般来说,遵循干燥(不要重复)原则是个好主意。如果您要在两个(或更多)地方展示相同的用户界面,您应该尝试一次编码/设计并重用它

即使只有一个数据源,您也应该尝试将表示与模型和业务逻辑分离


它使代码维护和测试变得更容易。

想法:尝试尽可能地创建一个基本控件-一个具有尽可能多的通用逻辑的控件,以便它可以作为所有三种情况的基础

现在创建三个从该基本控件继承的新控件,同时尽量限制这三个控件中的逻辑

现在希望“客户”(?)以后不会添加非常不同的场景;只要任何新的场景没有太大的不同,您可能仍然能够再次使用来自基本控制器的逻辑


希望这能让你像Miky Dinescu提到的那样坚持干燥原则,同时仍然支持现有和潜在的未来变化

痛苦的是,客户总是想对一种情况做一点小小的改变(比如添加文本信息),这让我抓狂