1. Trang chủ
  2. » Giáo Dục - Đào Tạo

LẬP TRÌNH JAVA MÔ HÌNH 3 LỚP

55 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Mô hình 3 Lớp
Người hướng dẫn Giảng viên: Tạ Việt Phương
Trường học Đại học Bách khoa Thành phố Hồ Chí Minh
Chuyên ngành Lập trình Java
Thể loại Bài giảng
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 55
Dung lượng 0,99 MB

Nội dung

3-tiers và 3-layer◂ 3-tiers là một kiến trúc kiểu client/server mà trong đó giao diện người dùng UI-user interface, các quy tắc xử lý BR- business rule hay BL-business logic, và việc lưu

Trang 1

LẬP TRÌNH JAVA

Giảng viên: Tạ Việt Phương E-mail: phuongtv@uit.edu.vn

Ch 6 MÔ HÌNH 3 LỚP

Trang 2

Nội dung

1 Giới thiệu

2 Mô hình 3 layer

3 Mô hình MVC

Trang 3

GIỚI THIỆU

Trang 4

Giới thiệu

◂ Mô hình 3 lớp:

◂ 3 tiers ?

◂ 3 layer ?

Trang 5

Giới thiệu

◂ 3 tiers - 3 tầng

◂ 3 layer - 3 lớp

Trang 6

3-tiers và 3-layer

◂ 3-tiers là một kiến trúc kiểu client/server mà trong đó giao diện người dùng (UI-user interface), các quy tắc xử lý (BR- business rule hay BL-business logic), và việc lưu trữ dữ

liệu được phát triển như những module độc lập, và hầu hết

là được duy trì trên các nền tảng độc lập, và mô hình 3

tầng (3-tiers) được coi là một kiến trúc phần mềm và là một mẫu thiết kế.

◂Tầng Presentation: hiển thị các thành phần giao diện để tương tác với người dùng như tiếp nhận thông tin, thông báo lỗi, …

◂Tầng Business Logic: thực hiện các hành động nghiệp vụ của phần mềm như tính toán, đánh giá tính hợp lệ của thông tin, Tầng này còn di chuyển, xử lí thông tin giữa 2 tầng trên dưới

Trang 7

3-tiers và 3-layer

◂ Nếu 3 tiers có tính vật lí thì 3 layer có tính logic

Nghĩa là ta phân chia ứng dụng thành các phần (các lớp) theo chức năng hoặc vai trò một cách logic Các layer khác nhau được thực thi trong 1 phân vùng bộ nhớ của process Vì thế nên một tier có thể có nhiều layer.

◂ “Lớp” đề cập đến bộ phận chức năng của phần

mềm, nhưng “tầng” đề cập đến bộ phận chức năng của phần mềm chạy trên cơ sở hạ tầng tách biệt với các bộ phận khác.

Trang 8

MÔ HÌNH 3 LAYER

Trang 9

Mô hình 3 lớp

◂ Trong phát triển ứng dụng, mô hình 3 lớp ra đời

nhằm phân chia các thành phần trong hệ thống để

Trang 10

Tổ chức mô hình 3 layer

◂ Mô hình 3-layer gồm có 3 phần chính:

Presentation Layer (GUI) : Lớp này có nhiệm vụ chính giao tiếp với người dùng Nó gồm các thành phần giao diện ( win form, web form,…) và thực hiện các công việc như nhập liệu, hiển thị dữ liêu, kiểm tra tính đúng đắn dữ liệu trước khi gọi lớp Business Logic Layer (BLL)

Business Logic Layer (BLL) : Layer này phân ra 2 thành

nhiệm vụ :

◂Đây là nơi đáp ứng các yêu cầu thao tác dữ liệu của GUI layer, xử lý chính nguồn dữ liệu từ Presentation Layer trước khi truyền xuống Data Access Layer và lưu xuống hệ quản trị CSDL

◂Đây còn là nơi kiểm tra các ràng buộc, tính toàn vẹn và

Trang 11

Tổ chức mô hình 3 layer

◂ Mô hình 3-layer gồm có 3 phần chính:

Data Access Layer (DAL): Lớp này có chức năng giao tiếp với hệ quản trị CSDL như thực hiện các công việc liên quan đến lưu trữ và truy vấn dữ liệu ( tìm kiếm, thêm, xóa, sửa,…)

◂ Một số cách đặt tên khác nhau cho 3 layer:

◂ Cách 1: GUI, BUS, DAL

◂ Cách 2: GUI, BLL, DAO, DTO

◂ Cách 3: Presentation, BLL, DAL

Trang 12

Tổ chức mô hình 3 layer

Trang 13

Tổ chức mô hình 3 layer

◂ Lớp này có nhiệm vụ chính là giao tiếp với người

Trang 14

Tổ chức mô hình 3 layer

◂ Xử lý dữ liệu từ Presentation Layer trước khi truyền xuống Data Access Layer và lưu xuống hệ quản trị

Trang 15

Tổ chức mô hình 3 layer

◂ Lớp này có chức năng giao tiếp với hệ quản trị CSDL

◂ Thực hiện các công việc liên quan đến lưu trữ và

truy xuất dữ liệu (đọc, thêm, xóa, sửa,…)

Trang 16

Tổ chức mô hình 3 layer

◂ Các layer trao đổi dữ liệu thông qua Data Transfer Object (DTO).

◂ DTO là đối tượng chứa dữ liệu, được tạo từ các

DTO class đại diện cho các đối tượng được lưu trữ trong CSDL.

Trang 17

◂ BLL sẽ kiểm tra và tính toán các yêu cầu nghiệp vụ, nếu yêu cầu không hợp lệ hoặc không cần đến

database thì BLL sẽ trả kết quả về cho GUI.

Trang 18

◂ BLL kiểm tra và gửi kết quả lên GUI.

◂ GUI sẽ hiển thị thông báo và kết quả yêu cầu cho

người dùng.

Trang 20

Cách thức vận hành

Trang 22

Ưu điểm

◂ Dễ phát triển: Khi muốn thêm chức năng nào đó thì việc lập trình theo mô hình sẽ dễ dàng hơn vì đã có chuẩn để tuân theo.

◂ Dễ bàn giao: Việc bàn giao, tương tác với nhau sẽ

dễ dàng, nhanh chóng hơn vì mọi người đều theo

một quy chuẩn định sẵn.

◂ Dễ phân phối khối lượng công việc: Mỗi nhóm sẽ

nhận 1 nhiệm vụ được phân chia rõ ràng trong mô hình 3 lớp

Trang 23

Ví dụ

Trang 24

Ví dụ

◂ CSDL QLNhanSu có bảng Employee với cấu trúc

như sau:

Trang 25

Ví dụ

Trang 26

Ví dụ

public class employeeDTO {

private int employee_id;

private String employee_name;

private int birthyear;

private String address;

public int getEmployee_id() {

Trang 27

Ví dụ

public void setEmployee_name(String employee_name) {

this.employee_name = employee_name; }public int getBirthYear() {

return birthyear; }public void setBirthYear(int birthyear) {

this.birthyear = birthyear; }public String getAddress() {

return address; }public void setAddress(String address) {

this.address = address; }}

Trang 28

public class employeeDAL {

private Connection con;

public boolean openConnection() {

try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

String dbUrl = "jdbc:sqlserver://localhost:1433;

Trang 30

Ví dụ

public Vector<employeeDTO> getAllEmployees(){

Vector<employeeDTO> arr = new Vector<employeeDTO>();

Trang 31

public boolean addEmployee(employeeDTO emp) {

boolean result = false;

if (openConnection()) {

try {

String sql = “Insert into Employee values(?,?,?,?)";

Trang 33

Ví dụ

public boolean hasEmployeeID(int id){

boolean result = false;

Trang 34

public class employeeBLL {

employeeDAL empDAL = new employeeDAL();

public Vector<employeeDTO> getAllEmployees(){

return empDAL.getAllEmployees();

}

Trang 35

return "Thêm thành công";

return "Thêm thất bại";

}

}

Trang 36

Ví dụ

package GUI;

import BLL.employeeBLL; import DTO.employeeDTO;

import java.awt.*; import java.awt.event.*;

import javax.swing.*; import java.util.Vector;

import javax.swing.table.DefaultTableModel;

public class employeeGUI extends JFrame {

employeeBLL empBLL = new employeeBLL();

JTable jTable1;

… // khai báo các thành phần giao diện khác

public employeeGUI() {

initComponents();

Trang 37

Ví dụ

public void initComponents() {

… // khởi tạo các thành phần giao diện

}

public void loadEmployeeList(){

DefaultTableModel dtm = new DefaultTableModel();

Trang 38

String name = em.getEmployee_name();

int birthyear = em.getBirthYear();

String address = em.getAddress();

Object[] row = {id,name,birthyear,address};

dtm.addRow(row);

}

}

}

Trang 40

} catch (NumberFormatException ex) {

JOptionPane.showMessageDialog(this, “Thông tin không

hợp lệ");

}

}

Trang 41

Ví dụ

◂ Presentation layer (main.java)

package GUI;

public class main {

public static void main(String[] args){

employeeGUI frm = new employeeGUI();

frm.setVisible(true);

}

}

Trang 42

MÔ HÌNH MVC

Trang 43

Mô hình MVC

◂ Mô hình MVC (Model – View – Controller) là một kiến trúc phần mềm hay mô hình thiết kế được sử dụng trong kỹ thuật phần mềm Nó giúp cho các developer tách ứng dụng của họ ra 3 thành phần khác nhau

Model, View và Controller Mỗi thành phần có một

nhiệm vụ riêng biệt và độc lập với các thành phần

khác.

Trang 44

Mô hình MVC

◂ Các thành phần của MVC:

Model: Đây là thành phần chứa tất cả các nghiệp vụ logic, phương thức xử lý, truy xuất database, đối tượng

mô tả dữ liệu như các Class, hàm xử lý…

View: Đảm nhận việc hiển thị thông tin, tương tác với người dùng, nơi chứa tất cả các đối tượng GUI như

textbox, images…Hiểu một cách đơn giản, nó là tập

hợp các form hoặc các file HTML

Controller: Giữ nhiệm vụ nhận điều hướng các yêu

cầu từ người dùng và gọi đúng những phương thức xử

lý chúng… Chẳng hạn thành phần này sẽ nhận request

Trang 45

Mô hình MVC

Trang 46

Mô hình MVC

Trang 47

Mô hình MVC

◂ MVC làm việc như thế nào?

◂ User tương tác với View, bằng cách click vào

button, user gửi yêu cầu đi

◂ Controller nhận và điều hướng chúng đến đúng phương thức xử lý ở Model

◂ Model nhận thông tin và thực thi các yêu cầu –

◂ Khi Model hoàn tất việc xử lý, View sẽ nhận kết quả từ Model và hiển thị lại cho người dùng.

Trang 48

Mô hình 3 lớp và MVC

◂ 3 Layer và MVC là 2 mô hình phổ biến trong lập trình

và có nhiều điểm giống nhau

◂ Điểm khác biệt của mô hình MVC so với mô hình 3 lớp: Khác biệt rõ nhất là cách xử lý yêu cầu

(workflow) của 2 mô hình Ở MVC, thành phần Model giữ chức năng của cả lớp Business và Data Access trong mô hình 3 Layer.

◂ 3 Layer thường được sử dụng trong lập trình ứng

dụng Trong khi đó, MVC được ưu chuộng nhiều

trong lập trình website vì tính linh hoạt và không bắt

Trang 49

Ví dụ

Trang 50

Ví dụ

◂ Model

Trang 51

Ví dụ

◂ View

Trang 52

Ví dụ

◂ Controller

Trang 53

Ví dụ

Trang 54

Ví dụ

◂ Main

public class MVCPattern {

public static void main(String[] args){

LoginView view = new LoginView();

LoginController control = new LoginController(view);

Control.login();

}}

Trang 55

Q & A

Giảng viên: Tạ Việt Phương E-mail: phuongtv@uit.edu.vn

Ngày đăng: 16/06/2024, 21:26

w