主要细节对象如何在OOP中工作?

时间:2011-03-29 05:15:56

标签: c# asp.net oop business-objects

我目前正在设计一个主细节gridview。我为它们定义了两个单独的对象。父网格视图绑定到第一个对象,在行数据绑定事件中,我使用父ID将第二个网格视图绑定到详细信息对象。

我在互联网上看到的很多例子初始化了父类中的详细信息对象,

public class Author
{

    private string name;
    public BooksList books=new BooksList();

    public BooksList Books
    {
       get
    { 
       return emailAddresses;
    }
    set
    {
       emailAddresses = value;
    }
}
  
      
  1. 初始化子类的目的是什么?   父类?

  2.   
  3. 目前,我只是将父母绑定到一个单独的对象&孩子到了   在我的表示层中手动分离对象&永远不会初始化父类中的子对象。这是错误的方式   对于OOP?

  4.   
  5. 为gridview实现此任务的推荐方法是什么?
  6.   

达明。

3 个答案:

答案 0 :(得分:1)

1:大多数情况下,您希望初始化类中的对象以避免出现空引用问题。

2:你在这里混淆了你的概念,因为你呈现对象的方式与OOP并不真正相关。等式的OOP部分是关于你的类是什么以及它们如何相互关联,所以是的,如果父类和子类之间存在关系,那么它应该在类结构中表示。

3:理想情况下,您将拥有一个允许绑定到数据网格的类结构,并可以自动为您的数据网格生成层次结构。

答案 1 :(得分:1)

您是否认为作者不是/不应该负责维护他/她的书籍清单?什么书? Whas是唯一的作者还是共同作者?你会如何解决这个问题?

我可以建议一个“图书馆”课程,其中包含一系列书籍,您可以查看,登记等。每本书都有一个或多个作者参考。您可以在书类中实例化这些,但我认为如果它们是图书馆作者列表的引用(更好)会更好。这样每个作者只存在一次,而不是在他(共同)写的每本书中都有一个实例。

答案 2 :(得分:1)

如果你想强制所有作者每次都有一个书单(空或不空)那么你就这样做。否则,如果您想在很多情况下考虑将null作为BookList以避免创建不需要的空对象,那么您可以创建Booklist,并在案例需要时通过构造函数将特定的booklist实例注入作者,或者稍后再设置它根据您的需要使用二传手。