Как решить, следует ли разделить это на 2 класса или оставить в одном классе? - PullRequest
0 голосов
/ 08 июня 2011

У меня есть страница со списком некоторых предметов. Каждый элемент имеет некоторые свойства: комментарии, изображения, заголовок, форму комментариев и контент. Кажется, достаточно просто создать класс с именем item, который будет представлять отдельный элемент в списке.

Однако у меня также есть «осиротевший» предмет, который используется для добавления новых предметов в список. Например, у него есть все те же свойства, текстовые поля, кнопки и т. Д. Для добавления изображений, записи содержимого и т. Д., Но он не хранится в БД, и у него есть новая кнопка «Добавить», которая сохраняет его в БД, и его затем добавлен в список.

Должен ли я по-прежнему создавать только 1 класс с именем item и просто иметь свойство с именем что-то вроде isSaved, чтобы определить, показывать ли кнопку «Добавить», показывать ли для нее форму комментария и т. Д.?

Или я должен создать 2 отдельных класса, вызвать один newItem и использовать его для потерянного элемента, а другой savedItem и использовать его для элементов, которые уже находятся в БД?

Кроме того, это в javascript, поэтому я не думаю, что я могу использовать много наследования.

1 Ответ

1 голос
/ 08 июня 2011

Как правило, вы подкласс, когда нужно изменить поведение или свойства. Если единственное отличие состоит в том, сохранен ли объект в БД или нет, скорее всего, это не кандидат на подкласс. Лучше всего было бы добавить свойство, такое как isSaved. Если только поведение одного принципиально не отличается от другого, когда оно сохраняется / не сохраняется.

...