OO - Техника для отделения объектов от экземпляров без введения неправильных соглашений об именах - PullRequest
1 голос
/ 19 августа 2011

Часто мне нужно создать инкапсуляцию для хранения массива сущности.Допустим, у нас есть класс, который представляет таблицу HTML.

public class Tables
{
   public Table[] Tables;
   public Tables(){}
}
public class Table
{
   public Header Header;
   public Row Row;
   public Footer Footer;
   public Table(){} 
}

Здесь мой Tables инкапсулирует коллекцию Table.Я хочу назвать мой объект Table [] Tables, но это противоречит моей инкапсуляции.Для меня оба представляют собой таблицу.Как мне исправить мои имена?

Во-вторых, моя таблица содержит нижний колонтитул

//A Special type of Row in a Table
public class Footer: Row
{
}

Я мог бы решить эту проблему, поставив в нижний регистр своих членов.Хотя это идет вразрез с рекомендациями Microsoft для публичных участников.

Я мог бы добавить Obj к своим именам участников ... еще раз, это не очень хорошая практика.Возможно, я неправильно смотрю свои OO-инкапсуляции.

Ответы [ 3 ]

3 голосов
/ 19 августа 2011

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

1 голос
/ 19 августа 2011

"Здесь мои таблицы инкапсулируют коллекцию таблиц."

Почему бы не назвать ваш класс просто так - TableCollection?

0 голосов
/ 19 августа 2011

Используйте шаблоны / шаблоны / как бы там ни называлось на вашем языке:

List<Table> ArrayList<Table> Collection<Table>

Если вам нужен пользовательский метод в класс вашей коллекции (т. е. вызов через this), вы делаете это неправильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...