2016-03-14 3 views
0

Я делаю проект на основе шаблона MVC, но у меня есть сомнения относительно расположения методов (вставка, обновление и удаление), я не знаю, находится ли он в классах модели или находится в другой части (пожалуйста посмотрите код). Еще одно сомнение в этом - интерфейсы (class Car implements CarInterface { ... }), это необходимо или я могу его избежать?Является ли эта структура MVC правильной для соответствия шаблону?

Контроллер:

class ServletCar extends HttpServlet { 
    ... 
    public void doPost(...) 
    { 
     ... 
     switch (action) { 
      ... 
      case 'insert': 
       Car n = new Car(); 
       n.set(request); 
       n.insert(); 
       ... 
       break; 
      ... 
     } 
     ... 
    } 
} 

View (Car.jsp):

... 
<form action="ServletCar" ...> 
    ... 
</form> 
... 

Модель:

class Car { 
    // attributes 
    ... 

    // gets ands sets 
    ... 

    // functions i,u,d 
    public void insert(...) { ... } 
    public void update(...) { ... } 
    public void delete(...) { ... } 

    // other methods 
    ... 
} 
+0

Вы не правы, вы не будет нашел какой-либо вопрос с этим примером кода в stackoverflow. –

ответ

0

вы должны создать сервисный уровень, поэтому в своем контроллере вы будете перенаправлять только на надлежащую службу, которая делает всю логику. Что-то вроде этого:

class ServletCar extends HttpServlet { 
    private CarService carService; 
    public void doPost(...) 
    { 
    ... 
    switch (action) { 
     ... 
     case 'insert': 
      carService.insert(carParam) 
      break; 
     ... 
    } 
    ... 
    } 
} 

public interface CarService { 
    save(Car car); 
    update(Car car); 
    delete(Car car); 
} 

public class CarServiceImpl implements CarService { 

    save (Car car) { 
    ... 
    } 

} 

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

+0

ОК, но у меня есть другой вопрос в соответствии с вашим кодом, так как вы знаете, это MVC, это значит, что M для Car, V для JSP, а C для ServletCar, в каком пакете я стану CarService и CarServiceImpl ?? Благодарю. –

+0

у вас может быть пакет org.app.model со всеми вашими бобами и еще 2 пакетами org.app.persistence для ваших объектов DAO, репозиториев и org.app.service для ваших услуг – cralfaro

0

лучше использовать интерфейс, так что если you'l изменить CarMobel к MotoModel, вы будете уверены, что у вас правильно назвали методы, и к нему будет легко доступен

0

Здесь автомобиль, кажется, не фасоль. Кажется, это объект доступа к данным. Всегда лучше создавать отдельные объекты bean и dao.

Интерфейс может быть реализован в классах dao.

Также должно быть перенаправление для просмотра. Вы используете простые сервлеты mvc? В этом случае нам нужно поставить диспетчер запросов.

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