cuốn sách gpt4 ai đã làm

Chiến lược MVP của Android

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 20:37:06 31 4
mua khóa gpt4 Nike

Tôi đang di chuyển ứng dụng của mình sang MVP. từ đây konmik Có mẹo về Chế độ người thuyết trình tĩnh trong

Đây là chiến lược MVP ngắn gọn của tôi. Hầu hết các trình nghe bản soạn sẵn và MVP đã bị loại bỏ để cho ngắn gọn. Chiến lược này đã giúp tôi thay đổi hướng đi và chứng minh quá trình nền tảng của mình. Hoạt động sẽ tiếp tục chính xác sau khi tạm dừng bình thường so với việc kết thúc hoạt động tạm dừng. Ngoài ra, Presenter chỉ có bối cảnh ứng dụng nên không giữ lại bối cảnh Hoạt động.

Tôi không phải là chuyên gia Java, đây là lần đầu tiên tôi học MVP và tôi không cảm thấy thoải mái khi sử dụng trình biểu diễn tĩnh. Tôi đã bỏ lỡ điều gì à? Ứng dụng của tôi chạy tốt và phản hồi nhanh hơn.

Kiểm tra

lớp công khai MainActivity mở rộng Hoạt động{
người dẫn chương trình tĩnh riêng tư;

khoảng trống được bảo vệ trênResume() {
if (người trình bày == null)
người trình bày = Người trình bày mới(this.getApplicationContext());
Presenter.onSetView(this);
Presenter.onResume();
}

khoảng trống được bảo vệ onPause() {
Presenter.onSetView(null);
if(isFinishing()) Presenter.onPause();
}
}

chủ nhà

Người trình bày lớp công khai {
Chế độ xem MainActivity riêng tư;
Bối cảnh bối cảnh;
mô hình mẫu công cộng;

Người trình bày công khai(Ngữ cảnh) {
this.context = bối cảnh;
mô hình = Mô hình mới (bối cảnh);
}

public void onSetView(MainActivity view) {
this.view = xem;
}

khoảng trống công khai trênResume(){
model.resume();
}
khoảng trống công khai trênPause(){
model.pause();
}

}

Người mẫu

Mô hình lớp công khai {

Mô hình công khai (Bối cảnh bối cảnh) {
this.context = bối cảnh;
}
sơ yếu lý lịch void công khai () {
//bắt đầu thu thập dữ liệu HandlerThreads
}
tạm dừng khoảng trống công khai () {
// dừng HandlerThreads
}

}

câu trả lời hay nhất

Tôi có hai gợi ý.

  1. SẽNgười mẫu,XemNgười trình bày Tạo một giao diện.
    • Chế độ xem MVP của bạn(Hoạt động,mảnh vỡ hoặc Xem) phải đơn giản đến mức không cần kiểm tra.
    • MVP-Presenter của bạn không bao giờ tương tác trực tiếp với Hoạt động/Đoạn/Chế độ xem, vì vậy nó có thể được kiểm tra bằng JUnit. Nếu bạn phụ thuộc vào khung Android thì việc thử nghiệm sẽ không có lợi vì bạn cần mô phỏng các đối tượng Android, sử dụng trình mô phỏng hoặc sử dụng khung thử nghiệm như Roboelectric, quá trình này có thể rất chậm.

Như một ví dụ về giao diện:

giao diện MVPView {
void setText(Chuỗi str);
}

giao diện MVPPresenter {
làm mất hiệu lực onButtonClicked();
void onBind(chế độ xem MVPView);
void onUnbind();
}

Lớp MVPPresenter hiện không phụ thuộc vào khung Android:

lớp MyPresenter triển khai MVPPresenter{
Chế độ xem MVPView;

@Override void bind(MVPView view){ this.view = view }
@Override void unbind() {this.view = null }
@Override void onButtonClicked(){
view.setText("Nút đã được nhấp!");
}
}
  1. tôi sẽ không Người trình bày Thay vào đó, là một lớp tĩnh, hãy đặt nó thành Đoạn được giữ lại. Các đối tượng tĩnh cần được theo dõi cẩn thận và loại bỏ thủ công để sử dụng GC khi không cần thiết (nếu không sẽ bị coi là rò rỉ bộ nhớ). Bằng cách sử dụng các mảnh được giữ lại, bạn có thể dễ dàng kiểm soát vòng đời của trình kết xuất hơn. Khi mảnh sở hữu mảnh được giữ lại hoàn thành, mảnh được giữ lại cũng bị hủy và bộ nhớ có thể được GC'ed. Xem ở đây để biết ví dụ .

Về chiến lược MVP của Android, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/32031724/

31 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress