具有属性的组合

时间:2014-02-10 15:27:54

标签: vb.net oop

编辑:

要澄清一下,这些东西,屏幕和字段,是我无法控制的真实世界(至少在计算机内是真实的)。屏幕是古代COBOL程序中包含的数据视图,字段位于屏幕上数据所在的位置。

我正在构建的目的是取代与这些屏幕和字段交互的低级和程序方法。您可能会认为这些对象与数据库中的表和列类似。现在我必须编写很多“管道”,比如更新特定屏幕上的一个字段,我必须复制该代码才能使用不同的字段。我想要的是一个代码库,它允许我简单地在一个对象上设置一个属性,以便更新一个字段,例如MyScreen.MyField.Value = <new value>

原帖:

我正在构建一个包装类的集合,这些类表示我认为在组合方面最能理解的对象,而不是关联。简而言之,我有一个screen对象,需要包含n个field个对象。这些字段由它们声明的屏幕所有,并且不应该在屏幕上存在,但必须可以从屏幕外部访问。

但是,我正在努力实现这种关系。我的OOP知识告诉我应该使用属性来管理它。类似的东西:

Private Class MyScreen
    Inherits Screen

    Private _myField As Field
    Public ReadOnly Property MyField() As Field
        Get
            Return _myField
        End Get
    End Property

    Public Sub New()

        MyBase.New()
        _myField = New Field()

    End Sub

End Class

然而,鉴于我可以轻易做到这一点,上述内容似乎过于冗长:

Private Class MyScreen
    Inherits Screen

    Public Readonly MyField As Field

    Public Sub New()

        MyBase.New()
        MyField = New Field()

    End Sub

End Class

一个或另一个是更好的选择吗?有没有第三种选择,我没有看到?

1 个答案:

答案 0 :(得分:0)

为什么不使用构图而不是

您可以创建一个可以在每个屏幕上实例化的ScreenWorker类。这个ScreenWorker类允许你从Screen类设置参数,允许你重用代码来执行grunt工作,具体取决于你传递给它的参数?