Как объекты основной детали работают в ООП? - PullRequest
0 голосов
/ 29 марта 2011

В настоящее время я занимаюсь разработкой сетки деталей мастера. У меня есть два отдельных объекта, определенных для них. Родительское представление сетки привязывается к первому объекту, и в событии привязки данных строки я связываю второе представление сетки с подробным объектом, используя родительский идентификатор.

Множество примеров, которые я вижу в Интернете, инициализируют объект details внутри родительского класса,

public class Author
{

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

    public BooksList Books
    {
       get
    { 
       return emailAddresses;
    }
    set
    {
       emailAddresses = value;
    }
}
  1. Какова цель инициализации дочернего класса внутри родительский класс?

  2. В настоящее время я просто связываю родителя с отдельным объектом, а потомка с отделить объект вручную в моем уровне представления и никогда не инициализировать дочерние объекты внутри родительского класса. Это неправильный путь для ООП?

  3. Каков рекомендуемый способ решения этой задачи для моего gridview?

Damien.

Ответы [ 3 ]

1 голос
/ 29 марта 2011

Считаете ли вы, что Автор не / не должен нести ответственность за ведение списка его / ее книг?Какие книги?Почему он единственный автор или соавтор?Как бы вы решили это?

Могу ли я предложить класс "Библиотека", в котором есть список книг, которые вы можете проверить, проверить и т. Д. В каждой книге есть одна или несколько ссылок на авторов,Вы можете создать их в классе книги, но я думаю, что было бы лучше, если бы они были ссылками (в) на список авторов Библиотеки.Таким образом, каждый автор существует только один раз, вместо того, чтобы иметь экземпляр в каждой и каждой книге, которую он (со) написал.

1 голос
/ 30 марта 2011

Если вы хотите, чтобы у всех авторов был список книг (пустой или нет) каждый раз, тогда вы делаете это следующим образом. В противном случае, если вы хотите во многих случаях предусмотреть использование нулевого значения в качестве BookList, чтобы избежать создания ненужных пустых объектов, вы можете создать отдельный Booklist отдельно и добавить его в конкретный экземпляр booklist в авторов при помощи конструктора, если это требуется в случае, или установить его позже используя сеттер в зависимости от ваших потребностей.

1 голос
/ 29 марта 2011

1: Большую часть времени вы хотите инициализировать свои объекты внутри вашего класса, чтобы избежать проблем с нулевыми ссылками.

2: Вы вводите в заблуждение свои понятия здесь, поскольку то, как вы представляете свои объекты, на самом деле не относится к ООП. ООП-часть уравнения полностью посвящена тому, что представляют собой ваши классы и как они связаны друг с другом, поэтому, если есть связь между родительским и дочерним классами, то она должна быть представлена ​​в структурах классов.

3: В идеале у вас должна быть структура класса, которая позволяет вам связывать вашу сетку данных и может автоматически генерировать вашу иерархию для вашей сетки данных.

...