2013-05-16 33 views
5

Bất cứ ai có thể giải thích cách đoạn mã này hoạt động ... Bản thân mã thực tế không liên quan như nó là từ một hướng dẫn ngắn về cách sử dụng mẫu MVP cho Android. Câu hỏi chính của tôi là cấu trúc mã này hoạt động như thế nào và cho dù đây là một lớp bên trong, các loại, hoặc có thể là một giao dịch .. Tôi chưa thấy một cấu trúc mã như thế này trong Java và tôi muốn nhấn mạnh nó vào học hỏi từ nó vì nó có vẻ hiệu quả và tối thiểu.Đây có phải là một lớp bên trong

public void loadCustomer(int id) { 
    (mCustomerModel.load(id)) { 
     mCustomerView.setId(mCustomerModel.getId()); 
     mCustomerView.setFirstName(mCustomerModel.getFirstName()); 
     mCustomerView.setLastName(mCustomerModel.getLastName()); 
    } 
} 
+0

Đó là phong cách tổ chức hơn, bạn hoàn toàn có thể bỏ qua dấu ngoặc nhọn. – Alex

+0

gọi ba phương thức của nó bên trong một cuộc gọi phương thức khác gây nhầm lẫn cho tôi ... bên trong một tập hợp các dấu ngoặc từ cuộc gọi phương thức đầu tiên. Tôi có bị câm ... :-) – leeb898

+1

@ leeb898 no ';' sau '(mCustomerModel.load (id))'? – assylias

Trả lời

-2

Đây là thẳng về phía trước, nhưng chắc chắn có vẻ hơi khác thường. Các dấu ngoặc tròn bao quanh mCustomerModel.load (id) là thừa, và trong trường hợp này các dấu ngoặc nhọn xung quanh ba dòng tiếp theo cũng thừa. Trong một trường hợp khác, nếu một biến cục bộ đã được khai báo trong khối đó, thì phạm vi của nó sẽ chỉ giới hạn trong khối đó. Mã bên dưới tương đương:

public void loadCustomer(int id) { 
    mCustomerModel.load(id); 
    mCustomerView.setId(mCustomerModel.getId()); 
    mCustomerView.setFirstName(mCustomerModel.getFirstName()); 
    mCustomerView.setLastName(mCustomerModel.getLastName()); 

} 

EDIT: Bỏ lỡ ý định rằng đường trong dấu ngoặc tròn phải là câu lệnh if. Đó là trường hợp, mã là khá tự giải thích một lần "nếu" đã được thêm vào.

+3

Điều này không biên dịch (thiếu ';') – assylias

+0

Nếu bạn cảm thấy mình đã hiểu sai câu hỏi, bạn có thể chỉ cần xóa câu trả lời của mình (liên kết bên dưới câu trả lời). – assylias

+0

@Monty Goodepuppee Tôi hiểu bây giờ, với câu lệnh If làm cho cảm giác bình thường và không có nó chỉ là cấu trúc tổ chức cho các cuộc gọi phương thức. – leeb898

-3

EDIT: Có nên là một tuyên bố if trước (mCustomerModel.load(id)), và đó là những gì câu trả lời của tôi giả định.

public void loadCustomer(int id) { 
    (mCustomerModel.load(id)) { 

mCustomerModel.load(id) lẽ sẽ kiểm tra nếu một id khách hàng là hợp lệ, và nếu nó là, chuẩn bị dữ liệu khách hàng để được truy cập/sửa đổi.

lấy id của khách hàng và đặt nó trong mCustomerView, có thể là phần tử GUI hiển thị dữ liệu.

 mCustomerView.setFirstName(mCustomerModel.getFirstName()); 
     mCustomerView.setLastName(mCustomerModel.getLastName()); 

làm điều tương tự cho tên đầu tiên và cuối cùng của khách hàng (hiển thị nó trong GUI)

} 
} 
+2

Không có câu lệnh 'if'. – dlev

+0

@dlev, wow. làm thế nào tôi đã bỏ lỡ điều đó? – BLuFeNiX

+0

Để công bằng, tôi nghĩ rằng * nên * là một tuyên bố 'if', và phần còn lại của lời giải thích của bạn là chính xác. – dlev

Các vấn đề liên quan