javaMvc模式

JAVA MVC模式

MVC模式定義:

MVC模式代表Model-View-Controller(模型-視圖-控制器),該模式用於應用程序的分層開發。

  • Model(模型):模型代表一個存取數據的對象和Java POJO,它也可以帶有邏輯,在數據變化時,更新控制器。
  • View(視圖):視圖代表模型包含的數據可視化。
  • Controller(控制器):控制器作用於模型和視圖上,它控制數據流向模型對象。
    在這裏插入圖片描述

MVC的實現

在這裏插入圖片描述
構建代碼如下:

Student類

public class Student {
    private String rollNo;
    private String name;

    public String getRollNo() {
        return rollNo;
    }

    public void setRollNo(String rollNo) {
        this.rollNo = rollNo;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

StudentController類

public class StudentController {
    private Student model;
    private StudentView view;

    public void setStudent_na(String name){
        model.setName(name);
    }

    public void setStudent_rollno(String rollna){
        model.setRollNo(rollna);
    }


    public StudentController(Student model, StudentView view) {
        this.model = model;
        this.view = view;
    }

    public Student getModel() {
        return model;
    }

    public void setModel(Student model) {
        this.model = model;
    }

    public StudentView getView() {
        return view;
    }

    public void setView(StudentView view) {
        this.view = view;
    }

    public void updateView(){
        view.printStudentDetails(model.getName(),model.getRollNo());
    }
}

StudentDao類

public class studentDao {
    public List<Student> retrieveStudentFromDatabase(){
        JDBConnection jdbConnection=new JDBConnection();
        String sql="select * from studentdata";
        List<Student> studentList=new ArrayList<>();
        try {

            ResultSet resultSet = jdbConnection.executeQuery(sql);
            while(resultSet.next()){
                String na=resultSet.getString(1);
                String no=resultSet.getString(2);
                Student student=new Student();
                student.setName(na);
                student.setRollNo(no);
                studentList.add(student);
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        finally {
            jdbConnection.closeConnecstion();
        }
        return studentList;
    }
}

StudentView類

public class StudentView {
    public void printStudentDetails(String studentName,String studentRollNo){
        System.out.println("Student: ");
        System.out.println("Name: "+studentName);
        System.out.println("RollNo: "+studentRollNo);
    }
}

main函數操作類

public class MVCPatternDemo {
    public static void main(String[] args) {
        //從數據庫獲取學生記錄
        studentDao studentDao=new studentDao();
        List<Student> model=studentDao.retrieveStudentFromDatabase();
        for(int i=0;i<model.size();i++){
            //創建視圖
            StudentView view =new StudentView();
            StudentController controller=new StudentController(model.get(i),view);
            //輸出當前視圖
            controller.updateView();
            System.out.println("-----開始操作-----");
            //更新數據
            controller.setStudent_na("ouguangji");
            controller.setStudent_rollno(String.valueOf(i+1));
            System.out.println("----結束操作----");
            //輸出更新後的視圖
            controller.updateView();
        }

    }
}

MVC設計模式的優點

  1. 分工明確

    開發人員可以只關注整個結構中的其中某一層,使用MVC模式可以把數據庫開發,程序業務邏輯開發,頁面開發分開,每一層都具有相同的特徵,方便開發後的維護工作。

  2. 低耦合:

    視圖層和業務層分離,這樣就允許更改視圖代碼,

  3. 複用性高:

    類似於多個視圖能夠共享一個模型,不論你視圖層是用flash界面或是wap界面,用一個模型就能處理他們。將數據和業務規則從表示層分開,就可以最大化從用代碼。

  4. 有利於標準化:

    有利於通過工程化、工具化產生管理程序代碼。

發佈了44 篇原創文章 · 獲贊 26 · 訪問量 4350
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章