The*_*lar 2 c# class parameter-passing winforms
首先,很难为我的问题找到合适的标题......对不起提前做好准备.
我正面临着C#.NET的问题.我将尝试用一个临时的例子来简化它.
我有三个班:
book movie_dvd game_dvd
它们中的每一个都具有相同的基本属性,例如:id和name.然而,我们可以假设它们具有其他不同的属性和不同的方法来成为同一个类.他们当然可以成为父母班级的孩子,以使其更好.
然后我创建每个类的列表来定义我的书籍,电影和游戏的集合.它们的id属性当然与List的键匹配,当我在List中插入每个项目时,我给它们一个合适的名字(它们的标题).
我有一个带有3个按钮的主winForm:"Show Books Collection","Show Movies Collection"和"Show Games Collection".用户可以单击其中一个,然后出现另一个窗口并在ListBox(或其他)中显示传递的集合.
现在这是我的问题.
现在我正在创建三个独立的(但几乎相同的)WinForms来显示每个集合(书籍,电影,游戏)的内容,我认为这些内容非常过分.我真正想做的是创建一个窗口来显示任何这些集合的内容.问题是,如果我在新winForm的参数内传递一个book对象/类,另一方面它应该是一个book对象.
如何在不重复WinForm代码的情况下使用单个Winform显示每个不同对象的标题?
如果您的表单显示3个类别(ID,标题,评论等)之间的"常见内容",那么您有两个选择:
设计一个基类,它包含每个其他类可以派生的这些公共属性,每个属性可能会重载和/或修改基础的功能.表单接受基类的列表.
设计一个定义基本属性的接口,让每个类实现它.表单接受实现该接口的对象列表.
这两种解决方案在某种程度上都是面向未来的 - 你可以定义第四种相应的继承或实现的东西,你的形式将不再明智!
我喜欢#2更好,因为它非常适合测试 - 你可以模拟任何实现你的界面的类并将它传递给你的表单来测试它.无需使用已知书籍/ DVD /游戏数据进行测试!
我不是铸造解决方案的粉丝,因为它们很脆,而且很难扩展.
| 归档时间: |
|
| 查看次数: |
2125 次 |
| 最近记录: |