MVC에서 C에 해당하는 Controller가 Presenter로 교체된 패턴
Presenter는 View를 통해 사용자의 입력을 받은 후 Model에 도움을 받아 사용자의 데이터를 처리하고 그 결과를 View로 다시 전달한다.
💡 MVC는 Model과 View가 서로 연결되어 있어 의존 관계를 갖게 된다
❗ 하지만, MVP는 Model과 View가 분리되어 있고 오직 Presenter를 통해서 상태나 변화를 알려줄 수 있다
public class Impl {
interface Presenter {
void loadData();
void createModel();
}
interface View {
void completed(String data);
}
}
class View implements Impl.View {
Presenter presenter;
public View (){
presenter = new Presenter(this);
presenter.createModel();
presenter.loadData();
}
@Override
public void completed(String data){
System.out.print(data);
}
}
class Presenter implements Impl.Presenter{
private Impl.View view;
private Model model;
public Presenter(Impl.View view){
this.view = view;
}
@Override
public void createModel(){
model = new Model();
}
@Override
public void loadData() {
if(model == null){
System.out.print("model is null");
return;
}
view.completed(model.getName());
}
}
class Model {
private String name = "kim";
public String getName(){
return name;
}
}