2016-10-24 3 views
0

Итак, я создал диаграмму классов в соответствии с назначением, это правильный способ сделать это? Я особенно не уверен в отношении Column class, потому что мне кажется, что он может быть просто переменным.Диаграмма классов для рекламной системы

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

Вы должны принять во внимание, что каждая рекламная система имеет различную структуру отчета: Различные поименованные столбцы, различный порядок столбцов, различные форматы даты также данные из систем объявлений в различных форматов данных (JSON, CSV, XML),

Отчеты из каждой системы содержит различное количество столбцов, наша приложения интересует только некоторые из них: дата, ad_campaing, AD_GROUP, ключевое слово, впечатление, цена (в каждой системе, которую они имеют другое имя)

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

enter image description here

+1

Какую диаграмму классов вы должны сделать? Модель домена (описывающая сущности в проблемной области), концептуальная модель решения (с точки зрения понятий, которые должны знать пользователи), модель программного обеспечения (классы, определенные в исходном коде), модель целевой базы данных ....? –

+0

Ну, я shoud создаю объектно-ориентированный дизайн, это просто читать легче, и каждый раз, когда я отправлял свой вопрос с кодом и вопросами об этом, он игнорировался/уменьшался. Поэтому, я думаю, этого достаточно, если я знаю, по крайней мере, если структура приложения хороша на этой диаграмме. Создание объектно-ориентированного дизайна из него должно состоять только в том, чтобы переписать его в код, если я не ошибаюсь. – rtom

+0

ОК, я предполагаю, что вам нужно создать модель дизайна программного обеспечения. Я предполагаю, что целевой язык - это язык OO, такой как Java или C#. Я думаю, вам нужно будет разработать общий интерфейс для отчета и класс адаптера для каждого конкретного типа отчета. Каждый класс адаптера реализует общий интерфейс для загрузки своего конкретного типа отчета. –

ответ

1

Я предполагаю, что вы должны сделать диаграмму классов для моделирования исходный код должен быть записан с использованием объектно-ориентированного языка. Я думаю, что лучший подход - создать класс адаптера для каждого конкретного типа отчета (т. Е. Для каждой отдельной рекламной системы). Каждый класс адаптера реализует общий интерфейс (или абстрактный базовый класс) для загрузки своего конкретного типа отчета. Вот моя диаграмма. Я нарисовал три адаптера, но может быть больше или меньше.

enter image description here

Если вы ожидаете, что несколько систем объявлений передавать данные в едином формате, например, CSV, в то время как только имена столбцов различаются, тогда вы можете создать общий CSV_ReportLoader, который считывает сопоставление имен столбцов из файла конфигурации (или объекта конфигурации).

+0

Я пытался преобразовать его в код, и у меня появилось несколько вопросов. Это мой первый проект ООП, поэтому я не совсем уверен, что должно быть моей целью при создании проекта ООП, потому что, если мы учитываем только функциональность, то это не выглядит так тяжело ... Хорошо, но с вашим подходом вы должны создать новый класс для каждой новой Ad_system (в моем решении вам нужно было только создать экземпляр нового объекта), также 'loadAdData' будет иметь, вероятно, одну и ту же реализацию в каждом классе, так что не имеет смысла реализовывать ее в' ReportLoader 'и наследовать это оттуда. – rtom

+0

Я не знаю, ошибаюсь ли я в OOP, но, к примеру, с моим решением у вас есть класс, который может найти ваш формат ваших данных (если его JSON, XML, CSV), не лучше? ? вы знаете, что класс может быть повторно использован позже? Потому что я думаю, что он должен быть разбит на мельчайшие части, поэтому индивидуальная часть может использоваться повторно, не так ли? – rtom

+0

Данные из рекламных систем находятся в разных форматах данных (JSON, CSV, XML). –

Смежные вопросы