總述
其實這個模式很好理解,非常簡單予弧。就是前端一股腦地接收了一大堆請求以躯,然后它根據(jù)各個請求的不同進行相應的分派槐秧,聽上去有點像路由器的意思,實際上也差不多忧设。
類圖
類圖.png
調用
package com.company;
public class Main {
public static void main(String[] args) {
// write your code here
FrontController controller = new FrontController();
controller.receiveRequest(0);
controller.receiveRequest(1);
controller.receiveRequest(2);
controller.receiveRequest(3);
}
}
輸出
視圖1處理了請求
視圖2處理了請求
視圖3處理了請求
請求無效
Process finished with exit code 0
前端控制器
package com.company;
public class FrontController {
private Dispatcher dispatcher = new Dispatcher();
public void receiveRequest(int requestID) {
this.dispatcher.dispatchRequest(requestID);
}
}
分派器
package com.company;
public class Dispatcher {
private ViewInterface[] views = {new View1(),new View2(),new View3()};
public void dispatchRequest(int requestIndex) {
if (requestIndex > -1 && requestIndex < views.length) {
this.views[requestIndex].processRequest();
} else {
System.out.println("請求無效");
}
}
}
視圖接口
package com.company;
public interface ViewInterface {
public void processRequest();
}
視圖1
package com.company;
public class View1 implements ViewInterface {
@Override
public void processRequest() {
System.out.println("視圖1處理了請求");
}
}
視圖2
package com.company;
public class View2 implements ViewInterface {
@Override
public void processRequest() {
System.out.println("視圖2處理了請求");
}
}
視圖3
package com.company;
public class View3 implements ViewInterface {
@Override
public void processRequest() {
System.out.println("視圖3處理了請求");
}
}
多謝捧場
如果您覺得我的文章有價值刁标,那么賞臉打賞一個,鄙人感激不盡见转。不過命雀,不打賞看看也是好的蒜哀,如果有不對的地方斩箫,還請您多多指正。